![](/img/trans.png)
[英]Component in AngularJS 1.5 doesn't listen Broadcasted event from $scope
[英]angularjs1.5+ component doesn't receive broadcast event ($on doesn't work)
我在寫一些代碼,意識到angularjs1.5 +組件實際上並沒有收到$scope.$broadcast
事件,這意味着$scope.$on
從未在組件控制器功能中運行。
盡管我能夠從組件控制器中$emit
事件並由$on
父級控制器接收到該事件,但它只是不偵聽廣播事件。
從父級廣播 : $scope.$broadcast('parentEvnt', [1,2,3]);
但在組分沒有收到: $scope.$on('parentEvnt', function(event, data){ \\\\
我創建了這個插件來顯示問題。
搜索了一些文章以及關於SO的內容,但沒有找到任何答案,然后嘗試使用$rootScope.$broadcast
也沒有幫助。
並且,如果不可能,那么從應用程序中任何隨機位置通知組件的最佳方法是什么?
問題在於您甚至在子控制器初始化並開始監聽那些事件之前就broadcast
該事件。 因此,使用$scope
或$rootScope
broadcast
都沒關系:)
例如,我將您的broadcast
更改為在2秒的$timeout
內broadcast
,它將按預期運行。
$timeout(function() {
$rootScope.$broadcast('parentEvnt', [1,2,3]);
}, 2000);
不過,理想情況下,您希望在單擊按鈕或其他一些情況下使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.