Angularjs Broadcast Once, Broadcastonce,on Twice
Answer :
Since you register your 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"
, then you are creating 2 instances of the controller: 1 instance is created by the state configuration and another one in your html.
Comments
Post a Comment