AngularJS:$broadcast from service不总是调用子控制器上的侦听器
我有一个与我的服务器连接的服务,在我获得数据后,我会广播事件:AngularJS:$broadcast from service不总是调用子控制器上的侦听器,angularjs,Angularjs,我有一个与我的服务器连接的服务,在我获得数据后,我会广播事件: user.getUserData = function () { var userData = $http.get('/user'); userData.success(function (data) { currentUser = data $rootScope.$broadcast(
user.getUserData = function () {
var userData = $http.get('/user');
userData.success(function (data) {
currentUser = data
$rootScope.$broadcast(EVENTS.userChanged);
});
userData.error(function () {
user.removeUser();
});
return userData;
};
我在body标签上还设置了一个主控制器和几个子控制器。在那上面我有
$rootScope.$on(EVENTS.userChanged, function () {});
每次我刷新应用程序时,主控制器上的这个函数都会被调用,但子控制器上的这个函数有时才被调用。有什么问题吗?可能过早触发
$broadcast
,子控制器尚未初始化。您需要显示更多代码。很可能是您的路由设置,以及您的子控制器的实例化位置。我认为@runTarm是正确的,但是我可以做些什么来确保我的子控制器已初始化?我不确定,但您不应该在各自的作用域上放置。$而不是$rootScope?您从$rootScope广播事件,它会向下发送事件,但我不确定在$rootScope上如何处理此类事件。我已经在我的应用程序中的rootScope上设置了广播,然后我在各自的范围内处理事件(.$on()),我从未注意到任何问题。。。