Chapter 5: Building an event bus
by msfrisbie
HTML
<script src="https://code.angularjs.org/1.3.2/angular.min.js"></script>
<div ng-app="myApp">
<div ng-controller="Ctrl">
<button ng-click="generateEvent()">Generate event</button>
</div>
<div my-dir></div>
</div>
JavaScript
angular.module('myApp',[])
.controller('Ctrl',function($scope, $rootScope, $log) {
$scope.generateEvent = function() {
$rootScope.$emit('busEvent');
};
$rootScope.$on('busEvent', function() {
$log.log('Handler called!');
});
})
.directive('myDir',function($rootScope, $log) {
return {
scope: {},
link: function(scope, el, attrs) {
$rootScope.$on('busEvent', function() {
$log.log('Handler called!');
});
}
};
});