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