2
Я хочу вызвать предупреждение в другом представлении после того, как $ location.path() изменил ng-view (без использования $ rootScope).
В моем спусковом контроллер событии у меня есть:
$location.path('/');
myService.setAlert("My alert");
Моя служба передает "сообщение" и $ транслировать событие
myService.broadcastAlert = function(){
$rootScope.$broadcast('alertChanged');
};
myService.setAlert = function(message){
myService.alert = message;
rootScope.$on('$routeChangeSuccess', function() {
myService.broadcastAlert();
});
}
контроллер Моего Другого вида получает предупреждение
$scope.$on('alertChanged', function(){
console.log("New Alert is triggered");
});
Проблема в том, что rootScope. $ On ('$ routeChangeSuccess') продолжает работать после
Он отлично работает, спасибо! Но я не совсем уверен, что понимаю, как это работает, не могли бы вы рассказать мне, где я могу больше узнать о функции регистрации? – lproust
Уверен: документы для 'Scope' для [1.1.5] (http://code.angularjs.org/1.1.5/docs/api/ng.pyroScope.Scope) или [последние] (http: // docs.angularjs.org/api/ng.$rootScope.Scope). Проверьте возвращаемое значение метода '$ on'. На самом деле это не имеет большого значения: '$ on()' возвращает функцию дерегистрации. При вызове он просто отменяет прослушивание. –
Это все еще использует rootScope, не так ли? – mila