AngularJS Watch multiple events Example

for http://stepansuvorov.com/blog/

by Stepan Suvorov

HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div ng-controller="mainCtrl">
    
</div>

JavaScript

var app = angular.module('app', []);


app.controller('mainCtrl', function ($rootScope, $scope) { 
  var $onOrigin = $rootScope.$on;

  $rootScope.$on = function(names, listener) {
    var self = this;

    if (!angular.isArray(names)) {
      names = [names];
    }

    names.forEach(function(name) {
      $onOrigin.call(self, name, listener);
    });

  };

  $scope.$on(['login', 'logout'], function() {
    console.log(arguments[0].name);
  });

  $scope.$emit('login');
  $scope.$emit('logout');
});