gpt4 book ai didi

angularjs - 在广播事件之前未设置广播监听器

转载 作者:行者123 更新时间:2023-12-01 04:56:21 25 4
gpt4 key购买 nike

谁能给我一些关于在广播事件之前没有设置广播监听器时如何处理这种情况的提示?

我已经看到了一些 $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
});
});

工作示例:
http://codepen.io/AndriusRimkus/pen/zqMONm

最佳答案

在您的情况下,您将始终尝试在订阅任何监听器之前进行广播。

那是因为你ParentCtrl将始终初始化 之前 ChildCtrl .
尝试像构造函数一样监视 Controller 。

如果您要向您的子 Controller 广播某些内容,那么您需要有一些事件(如点击)来手动开始广播,而不是直接从 Controller 开始广播。

关于angularjs - 在广播事件之前未设置广播监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36954109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com