angularjs – Angular $rootScope $broadcast()事件在控制器中捕获两次

前端之家收集整理的这篇文章主要介绍了angularjs – Angular $rootScope $broadcast()事件在控制器中捕获两次前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
按钮点击广播事件: –
$scope.onButtonClick = function(){
    $rootScope.$broadcast('onButtonClick');
}

在另一个控制器中捕捉事件: –

$rootScope.$on('onButtonClick',function(event){
  alert("catched");
  console.log(event);
});

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

事实证明,由于html中的ng控制器声明,也是ui-router的状态设置的一部分,多个控制器被实例化。

解决方案是在声明中删除

猜你在找的Angularjs相关文章