1

我在广播事件的服务中有一个方法,并且一个控制器已经订阅了它。

当广播发生时,订阅者处理程序执行两次。下面是设置:

//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
});

我无法纠正原因。有没有其他的东西可以有所作为。谢谢。

4

1 回答 1

3

事实证明,有多个控制器声明导致重复 $on 触发。

发生这种情况的常见原因之一是由于在$routeProvider配置中声明的控制器以及在视图 html 中使用ng-controller

于 2014-07-17T09:26:00.190 回答