我正在开发一个带有角度的单页应用程序,我需要在2个不同的指令之间进行通信,这些指令基本上没有父子关系.
在指令A中,我有2个地方需要从不同的功能广播相同的事件.在指令B中,已经为此写了一个听众.
现在,我观察到每当callF@R_404_6447@tFunc&第一次调用它的广播,监听器将被调用一次.在后续调用时,监听器被调用两次,三次等等,它继续增加.
callF@R_404_6447@tFunc被执行时调用callSecondFunc,因此对此的监听器也被称为no.在callF@R_404_6447@tFunc中广播的监听器的次数.
那么,为什么听众只被调用一次,为什么多次?它每次都在循环和增加.
指令A:
app.directive("f@R_404_6447@tDir",function ($rootScope) { return { restrict: 'E',link: function (scope,element,attrs) { // some other code callF@R_404_6447@tFunc(); var callF@R_404_6447@tFunc = function(){ // some other code $rootScope.$broadcast("someEvent"); } callSecondFunc(); var callSecondFunc = function(){ // some other code $rootScope.$broadcast("someEvent"); } } }; });
指令B:
app.directive("secondDir",function ($rootScope) { return { restrict: 'E',attrs) { // some other code scope.$on("someEvent",function(){ detectSTuff(); }) function detectStuff(){ // other code } } }; });
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。