Sometimes it's nice to use a global event bus in your applications. This dispatcher wraps a bit of the eventing functionality from $rootScope to create an event bus that other actors in your application can use.
DispatchingController
The dispatching controller is a mixin for your controllers to enhance their behavior.
angular.module('my-module', [
require('angular-browserify-event-dispatcher').name
])
.controller('myController', function ($scope, DispatchingController) {
var time = new Date();
angular.extend(this, new DispatchingController($scope));
this.listen('hi', function (event, msg) {
console.log('event handled:', time, msg, event);
});
this.dispatch('hi', 'from controller')
})
.service('myService', function(dispatch) {
dispatch('hi', 'from service');
})