Skip to content

Instantly share code, notes, and snippets.

@zhoufenfens
Created February 3, 2015 14:40
Show Gist options
  • Save zhoufenfens/25e3f887785d856c5e5d to your computer and use it in GitHub Desktop.
Save zhoufenfens/25e3f887785d856c5e5d to your computer and use it in GitHub Desktop.
app.factory("EventBus", function() {
var eventMap = {};
var EventBus = {
on : function(eventType, handler) {
//multiple event listener
if (!eventMap[eventType]) {
eventMap[eventType] = [];
}
eventMap[eventType].push(handler);
},
off : function(eventType, handler) {
for (var i = 0; i < eventMap[eventType].length; i++) {
if (eventMap[eventType][i] === handler) {
eventMap[eventType].splice(i, 1);
break;
}
}
},
fire : function(event) {
var eventType = event.type;
if (eventMap && eventMap[eventType]) {
for (var i = 0; i < eventMap[eventType].length; i++) {
eventMap[eventType][i](event);
}
}
}
};
return EventBus;
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment