Это может быть повторяющийся вопрос, но обходной путь, который я нашел для этой проблемы, не работает в моем случае, поэтому я отправляю вопрос.
Я следующий сервиса:
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', 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() {.." в первом контроллере. Я использовал различные услуги во многих местах в мое приложение таким же образом, и они workig хорошо, я не понимая, почему он не работает здесь.
оба контроллера экземпляра при тестировании это ?? – harishr
Вы пробовали '$ emit' вместо' $ broadcast'? или просто '$ rootScope. $ on' – Dylan
Я пробовал оба. $ emit и $ rootScope. $, но все еще не работает –