$ scope。$执行多次

时间:2016-04-19 17:54:58

标签: angularjs

我正在使用broadcast和$ scope。$ on,但$ scope。$中的方法执行多次。 这是我的代码。 在控制器中:

$scope.selectItem = function(index, item){
    BaseService.hideView();
},

$scope.$on("closeView",function(){
    $log.debug("InsideOn: calling hideViewedItem");
    $scope.hideViewedItem();
});

在BaseService中:

app.factory('BaseService', function ($rootScope, $log, $location) {
    return {
       hideView :function(){
        $log.debug("calling closeView");
        $rootScope.$broadcast("closeView", 1);
     }
    }
}); 

这里调用hideView一次,但hideViewedItem调用3次。在控制台中我收到这些消息。

calling closeview
InsideOn: calling hideViewedItem
InsideOn: calling hideViewedItem
InsideOn: calling hideViewedItem

如何只打一次这个电话?

0 个答案:

没有答案