单击按钮时广播事件:-
$scope.onButtonClick = function(){
$rootScope.$broadcast('onButtonClick');
}
并在另一个 Controller 中捕获事件:-
$rootScope.$on('onButtonClick',function(event){
alert("catched");
console.log(event);
});
但即使它只发射了一次,它也捕获了两次。这是为什么?
最佳答案
事实证明,由于 ng-controller
,多个 Controller 被实例化。 html 中的声明,也作为 ui-router
状态设置的一部分.
解决方案是删除其中一个声明。
关于angularjs - Angular $rootScope.$broadcast() 事件在 Controller 中被捕获两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25788032/