【发布时间】:2014-11-05 10:29:31
【问题描述】:
按钮点击时的广播事件:-
$scope.onButtonClick = function(){
$rootScope.$broadcast('onButtonClick');
}
并在另一个控制器中捕获事件:-
$rootScope.$on('onButtonClick',function(event){
alert("catched");
console.log(event);
});
但即使只发射了一次,它也捕捉到了两次。这是为什么呢?
【问题讨论】:
-
很可能有两个控制器实例处于活动状态。一个常见的原因是在同一视图上使用
$routeProvider控制器和ng-controller。 -
那么如何解决呢?你能帮帮我吗?
-
您是否按照 Chandermani 的建议使用 ng-controller 实例化了您的控制器?如果是这样,请删除 ng-controller 属性。使用 ng-controller、uirouter 和 ngRouter 实例化控制器是一种或另一种选择。如果您将控制器实例化两次,您将拥有它的两个实例。
-
@Chandermani :谢谢 :) 它的工作。我只在 uirouting 中给控制器,它可以工作:)
-
让我将其添加为答案,以便标记为已回答的问题我可以得到一些功劳:)