簡體   English   中英

angularjs1.5 +組件不接收廣播事件($ on不起作用)

[英]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秒的$timeoutbroadcast ,它將按預期運行。

$timeout(function() {
  $rootScope.$broadcast('parentEvnt', [1,2,3]);
}, 2000);

不過,理想情況下,您希望在單擊按鈕或其他一些情況下使用它。

工作實例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM