我的Angular应用程序已经相当大了,我使用rootScope在指令和控制器之间进行通信.
Directive 1
scope.$root.$broadcast('some:event');
Controller 1
$rootScope.$on('some:event', function() { I get called multiple times :( });
$scope.$on('some:event', function() { I am not getting called at all :( });
Run Code Online (Sandbox Code Playgroud)
出于某种原因,我的听众被多次打电话(确切地说是2倍).我觉得在某个地方,我建在第二个rootScope或其他东西.我正在调试我的应用程序,但这就像在大海捞针中找到针.
该线程试图解决类似的问题:AngularJs广播重复执行次数太多.它建议只使用$ scope,在我的特定情况下对我不起作用.广播的事件从未传达给听众.
我的问题是,如果有人知道为什么会发生这种情况?也许我正在做一个我不知道的愚蠢的错误.抓住一次事件我只发了一次听起来不对.
提前致谢