Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何停止角js中的广播事件?_Angularjs - Fatal编程技术网

Angularjs 如何停止角js中的广播事件?

Angularjs 如何停止角js中的广播事件?,angularjs,Angularjs,如何停止angularjs中的广播事件?我有三个控制器嵌套。当我从ctrl1控制器广播事件时,ctrl2和ctrl3控制器会监听此事件。我想从侦听器事件停止ctrl3控制器。如何做到这一点 <div ng-controller="ctrl1" ng-click="ad2()"> <div ng-controller="ctrl2"> <div ng-controller="ctrl3"> &

如何停止angularjs中的广播事件?我有三个控制器嵌套。当我从
ctrl1
控制器广播事件时,
ctrl2
ctrl3
控制器会监听此事件。我想从侦听器事件停止
ctrl3
控制器。如何做到这一点

<div  ng-controller="ctrl1" ng-click="ad2()">
        <div  ng-controller="ctrl2">
            <div  ng-controller="ctrl3">
            </div>  
        </div>  
    </div>  

    studentReport.controller("ctrl1",["$scope",function($scope){
    $scope.ad2 = function(){
        $scope.$broadcast("text","hi");
    }
}])

studentReport.controller("ctrl2",["$scope",function($scope){
    $scope.$on("text",function(event,message){
        alert(message)
    });
}])

studentReport.controller("ctrl3",["$scope",function($scope){
    $scope.$on("text",function(event,message){
        alert(message)
    });
}])

studentReport.controller(“ctrl1”、[“$scope”、函数($scope){
$scope.ad2=函数(){
$scope.$broadcast(“文本”、“hi”);
}
}])
studentReport.controller(“ctrl2”、[“$scope”、函数($scope){
$scope.$on(“文本”、函数(事件、消息){
警报(信息)
});
}])
studentReport.controller(“ctrl3”、[“$scope”、函数($scope){
$scope.$on(“文本”、函数(事件、消息){
警报(信息)
});
}])

$scope.on
返回可用于注销事件的函数。所以你可以这样做:

var deregisterKey = $scope.on('key', fn);

// stop listening
deregisterKey()

另请参阅:

在调用
警报(消息)
之前,请尝试设置此

 event.defaultPrevented = true; 
广播没有stopPropagation方法,因此必须使用
defaultPrevented

// subscribes...
  var myListener = $scope.$on('child', function (event, data) {
    // do something
  });

  // unsubscribes...
  // this would probably sit in a callback or something
  myListener();
取消订阅收听活动


只需注销即可侦听该事件。如何注销@Ashish Kumawat//订阅的事件。。。var myListener=$scope.$on('child',函数(事件,数据){//do something});//取消订阅…//这可能位于回调或myListener()中;