javascript – $scope.$on $postScope后$未触发.角度服务中的$broadcast

前端之家收集整理的这篇文章主要介绍了javascript – $scope.$on $postScope后$未触发.角度服务中的$broadcast前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这可能是重复的问题,但是我发现这个问题的解决方法在我的情况下不能正常工作,这就是为什么我发布问题.

我有以下服务:

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

在第二控制器:

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

在第一控制器:

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

问题:行“$rootScope.$broadcast(‘FirstCtrlMethod’);”正如预期的那样执行,但不会引发事件“$scope.$on(‘FirstCtrlMethod’,function(){..”在第一个控制器中.
我在应用程序中的许多地方都使用了差异服务,而且他们的工作正常,我不明白为什么它不在这里工作.

解决方法

评论作为答案…

我猜其他控制器应该收到的事件还没有被设置,当你是$广播的事件.

请尝试实例化其他控制器

原文链接:https://www.f2er.com/js/152621.html

猜你在找的JavaScript相关文章