多次调用$ rootScope。$ on

时间:2018-03-27 15:38:58

标签: javascript angularjs

我的网络服务完成数据后,我正在使用$rootScope.$emit('driver-loader');。这是'driver-loader'被释放的唯一地方。我做了......

var watchDriverLoader = $rootScope.$on('driver-loaded', function(){
        console.log('loaded');
        watchDriverLoader = null;
    });

...在我的控制器内部,console.log被多次调用,有时甚至被调用4-5次。

1 个答案:

答案 0 :(得分:3)

您需要手动销毁$rootScope.$on

var watchDriverLoader = $rootScope.$on('driver-loaded', function(){
    console.log('loaded');
});
$scope.$on('$destroy', watchDriverLoader);