我在服务中有一个广播事件的方法,一个控制器订阅了它。
当广播发生时,订户处理程序执行两次。 以下是设置:
//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
});
我无法纠正原因。是否有其他可以产生影响的东西。 感谢。
答案 0 :(得分:3)
事实证明,有多个控制器声明导致重复$ on触发。
发生这种情况的一个常见原因是由于$routeProvider
配置中的控制器以及使用ng-controller
的视图html中声明的