它从rootScope发送$broadcast一次,但是监听器($on)被调用两次.
监听器在控制器中,它使用$rootScope.$on而不是$scope.$on.有人有这个问题吗?
编辑
rootScope:
$rootScope.$broadcast('menuActivateAction' + item.event_name_postfix,item.event_args);
其他控制器:
$rootScope.$on('menuActivateActionPublish',function(event) {});
解决方法
由于您在$rootScope上注册$on监听器,所以它不会被控制器破坏,并且下次再次启动控制器时.
您应该在控制器范围上创建您的监听器
$scope.$on('menuActivateActionPublish',function(event) {});