angularjs – 广播事件之前未设置广播侦听器
发布时间:2020-12-17 16:55:37 所属栏目:安全 来源:网络整理
导读:在广播事件之前没有设置广播监听器时,有人可以给我一些关于如何处理这种情况的提示吗? 我已经看到了一些$timeout的解决方案,但他们感觉还不错.谢谢! var app = angular.module('app',[]);app.controller('ParentCtrl',function ParentCtrl ($scope) { this
在广播事件之前没有设置广播监听器时,有人可以给我一些关于如何处理这种情况的提示吗?
我已经看到了一些$timeout的解决方案,但他们感觉还不错.谢谢! var app = angular.module('app',[]); app.controller('ParentCtrl',function ParentCtrl ($scope) { this.data = 'parent'; $scope.$broadcast('parent','Some data'); // event is sent before any listeners are set }); app.controller('ChildCtrl',function SiblingOneCtrl ($scope) { this.data = 'child'; $scope.$on('parent',function (event,data) { document.write(data); // never activates }); }); 工作范例: 解决方法
在您的情况下,您将始终尝试在任何听众订阅之前进行广播.
那是因为您的ParentCtrl将始终在ChildCtrl之前初始化. 如果您要向您的子控制器广播内容,那么您需要有一些事件(如点击)来手动开始广播,而不是直接从控制器开始. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |