Broadcating事件: -
$scope.onButtonClick = function(){
$rootScope.$broadcast('onButtonClick');
}
而在另一个控制器捕获事件: -
$rootScope.$on('onButtonClick',function(event){
alert("catched");
console.log(event);
});
但它抓住了两次甚至尽管它只发射一次。这是为什么?
最大的可能是控制器的两个实例是激活的。一个常见的原因是在同一视图中使用'$ routeProvider'控制器和'ng-controller'。 – Chandermani 2014-09-11 13:16:11
那么如何解决呢?你能帮我么? – Pratibha 2014-09-11 13:25:06
Chandermani建议您是否使用ng控制器实例化了您的控制器?如果是这样,请删除ng-controller属性。使用ng-controller,uirouter和ngRouter来实例化控制器是另一种选择。如果你实例化控制器两次,你将有两个实例。 – Martin 2014-09-12 08:46:19