Angularjs Broadcast Once, Broadcastonce,on Twice
		 Answer : Since you register your o n l i s t e n e r o n on listener on o n l i s t e n ero n rootScope, it doesn't get destroyed with the controller and next time you init the controller it gets created again.   You should create your listener on controller scope   $scope.$on('menuActivateActionPublish', function(event) {});  Be careful you avoid two instances of the controller means two event listeners, which means the method gets executed twice !! ( example: using twice 'ng-controller' )  To complement que1326 answer, as an example, if you are using ui-router and have something like   .state('app.yourpage', {             url:'yourPage',             views: {                 'content@': {                     templateUrl : 'views/yourPage.html',                     controller  : 'YourController'                 }             }         })   and in yourPage.html you have a ng-controller="YourController as Ctrl" , th...