У меня есть довольно прямо вперед, создать две вкладку, дом и администратор
$routeProvider
// route for the home page
.when('/home', {
templateUrl : 'views/home.html',
controller : 'myCtrl',
controllerAs: 'vm',
resolve:{
loadDropDowns:function(DataSvc,$rootScope){
return DataSvc.GetDropDowns();
}
}
})
// route for admin page
.when('/admin',{
templateUrl : 'admin/templates/admin.html'
})
и в контроллере, у меня есть слушатель за $ viewContentLoaded события как так : $rootScope.$on('$viewContentLoaded', function(event){ console.log(" viewContentLoaded fired "); });
и каждый раз, когда я нажимаю на вкладке дома, обработчик события стрельб дважды так первый раз его 2, чем 4, чем 8, и так далее ...
у меня есть другое событие, транслируемое при загрузке выпадающих списков, а также для одного события с бродкастом, я также получаю несколько сбоев обработчика.
$rootScope.$broadcast('dropDownsSet');
и в том же контроллере:
$rootScope.$on('dropDownsSet', function(event, mass) {}
запускается на выполнение несколько раз, а .. (такой же, как указано выше, каждый раз, когда удвоение числа раз обработчик событий стрельбы)
I «В конце концов, что может быть причиной этого безумия?
это большое предложение. Спасибо !! Это родительский контроллер. есть ли способ очистить все остальные события при регистрации нового? – JavaHead
Вы можете удалить обработчики событий (см. Ответ Ved), но я думаю, что лучше спроектировать контроллеры и события, чтобы он не был нужен. – dfsq
Спасибо за вашу помощь, я пытался понять это уже несколько дней. – JavaHead