24 lines
537 B
JavaScript
Executable File
24 lines
537 B
JavaScript
Executable File
'use strict';
|
|
|
|
crop.factory('cropPubSub', [function() {
|
|
return function() {
|
|
var events = {};
|
|
// Subscribe
|
|
this.on = function(names, handler) {
|
|
names.split(' ').forEach(function(name) {
|
|
if (!events[name]) {
|
|
events[name] = [];
|
|
}
|
|
events[name].push(handler);
|
|
});
|
|
return this;
|
|
};
|
|
// Publish
|
|
this.trigger = function(name, args) {
|
|
angular.forEach(events[name], function(handler) {
|
|
handler.call(null, args);
|
|
});
|
|
return this;
|
|
};
|
|
};
|
|
}]); |