It sends $broadcast once from the rootScope, but the listener ($on) gets called twice.
The listener is in a controller and it uses $rootScope.$on
instead of $scope.$on
. Has someone had this problem?
edit
rootScope:
$rootScope.$broadcast('menuActivateAction' + item.event_name_postfix, item.event_args);
other Controller:
$rootScope.$on('menuActivateActionPublish', function(event) {});
Since you register your $on listener on $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