mirror of
https://github.com/flarum/framework.git
synced 2024-12-11 13:05:50 +08:00
37 lines
583 B
JavaScript
37 lines
583 B
JavaScript
export default {
|
|
handlers: null,
|
|
|
|
/**
|
|
|
|
*/
|
|
getHandlers(event) {
|
|
this.handlers = this.handlers || {};
|
|
return this.handlers[event] = this.handlers[event] || [];
|
|
},
|
|
|
|
/**
|
|
|
|
*/
|
|
trigger(event, ...args) {
|
|
this.getHandlers(event).forEach((handler) => handler.apply(this, args));
|
|
},
|
|
|
|
/**
|
|
|
|
*/
|
|
on(event, handler) {
|
|
this.getHandlers(event).push(handler);
|
|
},
|
|
|
|
/**
|
|
|
|
*/
|
|
off(event, handler) {
|
|
var handlers = this.getHandlers(event);
|
|
var index = handlers.indexOf(handler);
|
|
if (index !== -1) {
|
|
handlers.splice(index, 1);
|
|
}
|
|
}
|
|
}
|