Skip to content

Instantly share code, notes, and snippets.

@mizhdi
Last active October 9, 2018 00:17
Show Gist options
  • Save mizhdi/3ec2ad5996c467745373 to your computer and use it in GitHub Desktop.
Save mizhdi/3ec2ad5996c467745373 to your computer and use it in GitHub Desktop.
angular
app.factory('EventBus', function() {
var EventMap = [];
var EventBus = {
on: function(eventType, handler) {
if (!EventMap[eventType]) {
EventMap[eventType] = [];
}
EventMap[eventType].push(handler);
},
off: function(eventType, handler) {
for (var i = 0, len = EventMap[eventType].length; i < len; 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, len = EventMap[eventType].length; i < len; i++) {
EventMap[eventType][i](event);
}
}
}
};
return EventBus;
});
//test
// 订阅
EventBus.on('someEVent', function(event) {
var c = event.data.a + event.data.b;
})
// 发布
EventBus.fire({
type: 'someEvent',
data: {
a: 1,
b: 2
}
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment