AngularJS:$ rootScope。$ on不接收通过$ rootScope发送的消息。$ v1.2角广播

时间:2013-11-12 17:08:59

标签: angularjs angularjs-scope

关于广播和接收广播,

在角度1.2 rc2和角度1.2之间有什么变化?

我认为我认为是$ watch中的控制器中的标准广播,即

    $scope.$watch('changedRequest', function(newValue, oldValue) {
        $rootScope.$broadcast('onTestingMe')
    });

我尝试在另一个控制器中接收它

    $rootScope.$on("onTestingMe", function () {
        alert('I am received');
    });

广播似乎有效,但我从来没有得到任何东西抵达。

我在$ rootScope上设置了$ on和$ broadcast。我的手表是在美元范围内,但这应该不是问题。

我在两个控制器中注入了$ rootScope。

Chrome控制台中没有收到任何错误。

我迷路了,有什么想法吗?

我确实注意到在RC3上也发生了同样的情况,但我只是把它放到RC上,所以我回到了RC2并且认为我会等待1.2发布....但同样的情况正在发生..

修改

我能看到的唯一不同的是我使用的是ng-include

        <div ng-include="template.url" ng-controller="ItemBarCtrl"></div>

也许它的渲染速度不够快?当加载文档并且控制器ItemBarCtrl具有$ on ....

时发送msg

我会尝试做一些测试...奇怪的问题!

1 个答案:

答案 0 :(得分:10)

这是一个老问题,但我遇到了它,正在寻找类似的问题。尝试将$broadcast包裹在$timeout函数中,延迟时间为100左右。如果$on触发,那么我可能会遇到$broadcast$on准备就绪之前发生的问题。我还在调查这个修复问题。