这可能是重复的问题,但是我发现这个问题的解决方法在我的情况下不能正常工作,这就是为什么我发布问题.
我有以下服务:
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(){..”在第一个控制器中.
我在应用程序中的许多地方都使用了差异服务,而且他们的工作正常,我不明白为什么它不在这里工作.