Angular $rootScope.$broadcast() event caught twice in controller
问题 Broadcating event on button click :- $scope.onButtonClick = function(){ $rootScope.$broadcast('onButtonClick'); } And catching event in another controller :- $rootScope.$on('onButtonClick',function(event){ alert("catched"); console.log(event); }); But it caught twice even though it fired only once. Why is that? 回答1: As it turned out the multiple controllers were instantiated due to ng-controller declaration in html and also as part of state setup for ui-router . The solution is to remove one