gpt4 book ai didi

javascript - $scope.$on 在 $rootScope.$broadcast 之后不触发

转载 作者:可可西里 更新时间:2023-11-01 01:51:07 24 4
gpt4 key购买 nike

这可能是重复出现的问题,但我找到的针对此问题的解决方法在我的情况下不起作用,这就是我发布问题的原因。

我已关注服务:

appRoot.service('MyService', function($rootScope) {
var Messenger = {
Temp: "",
TempId:"",
tempMethod: function(Id) {
TempId = Id;
$rootScope.$broadcast('FirstCtrlMethod');
}
};
return Messenger ;
});

第二个 Controller 中:

appRoot.controller('SecondCtrl', function ($scope, $location, MyResource, NotificationService, MyService) {
$scope.invokeFirstCtrl= function() {
var Id = '2';
MyService.tempMethod(Id);
});

第一个 Controller 中:

appRoot.controller('FirstCtrl', function ($scope, $compile, $filter, $modal, $sce, $location, NotificationService, MyService) {
$scope.$on('FirstCtrlMethod', function () {
alert('I am from frist controller');
});
});

问题 "$rootScope.$broadcast('FirstCtrlMethod');" 行按预期执行,但不会导致触发事件 "$scope.$on('FirstCtrlMethod', function () {.." 在第一个 Controller 中。我在我的应用程序的许多地方以相同的方式使用了不同的服务,它们工作正常,我不明白为什么它在这里不起作用。

最佳答案

将评论作为答案...

我想当您 $broadcasting 事件时,应该接收事件的另一个 Controller 尚未启动。

请尝试实例化另一个 Controller

关于javascript - $scope.$on 在 $rootScope.$broadcast 之后不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26728072/

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