繁体   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