Событие углового вещания, вызывающее выполнение слушателя два раза
У меня есть метод в службе, который передает событие, и один контроллер подписался на него.
Когда происходит трансляция, обработчик подписчика выполняется два раза. Ниже приведена настройка:
//Broadcaster
function (Id1, Id2, Id3) {
var requestObj = {"ID1": Id1, "ID3": Id3};
$http.post(url, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
}
})
.success(function (response) {
$rootScope.$broadcast('myevent');
}).error(function (response) {
});
}
================================================================
//subscriber
$scope.$on('myevent', function () {
console.log($dialog); // Executes two times
});
Я не могу исправить причину. Есть ли что-то еще, что может иметь значение. Благодарю.
1 ответ
Решение
Как оказалось, было многократное объявление контроллера, что вызывало запуск дубликата $on.
Одна из распространенных причин этого происходит из-за контроллера, объявленного в $routeProvider
Конфигурация, а также в представлении HTML с помощью ng-controller