в app.js, я использую функцию обратного вызова, переданную на $ rootScope, чтобы получить уволенный метод на втором контроллере.AngularJS: Как избежать - широковещательное событие, вызванное из app.js, запускается дважды?
function onSuccess(state) {
if (state != true) {
} else {
$rootScope.$broadcast('proximityCatched', null);
}
//console.log('Proximity state: ' + (state ? 'near' : 'far'));
};
На контроллере у меня есть слушатель:
$rootScope.$on('proximityCatched', function() {
alert("TEST");
});
Проблема заключается в том, что предупреждение ("TEST"); запускается дважды.
Я попытался найти любое рабочее решение, используя stopPropagation или используя широковещательную рассылку в обычном режиме, но без везения.
Как я могу это сделать правильно?
Спасибо за любой совет.
Edit: конфигурации маршрутизатора:
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('game', {
url: "/game",
templateUrl: "templates/game.html",
controller: "GameCtrl"
})
.state('home', {
url: "/home",
templateUrl: "templates/home.html",
controller: "HomeCtrl"
})
// if none of the above states are matched, use this as the fallback
$urlRouterProvider.otherwise('/home');
});
Вы подключаете контроллер дважды в маршрут и html? –
Вы думаете, маршрутизатор, который я только что поставил под вопрос? Контроллеры упоминаются здесь, в index.html и в ng-init – redrom
ok Вы используете 'ng-controller' в html? –