Skip to main content
 首页 » 编程设计

angularjs之Angular $rootScope.$broadcast() 事件在 Controller 中被捕获两次

2024年11月24日10zlslch

单击按钮时广播事件:-

$scope.onButtonClick = function(){ 
    $rootScope.$broadcast('onButtonClick'); 
} 

并在另一个 Controller 中捕获事件:-
$rootScope.$on('onButtonClick',function(event){ 
  alert("catched"); 
  console.log(event); 
}); 

但即使它只发射了一次,它也捕获了两次。这是为什么?

请您参考如下方法:

事实证明,由于 ng-controller,多个 Controller 被实例化。 html 中的声明,也作为 ui-router 状态设置的一部分.

解决方案是删除其中一个声明。