【发布时间】:2016-03-30 15:19:16
【问题描述】:
如何在 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)
});
}])
【问题讨论】:
-
只需注销即可收听该事件。
-
如何取消注册活动@Ashish Kumawat
-
// 订阅... var myListener = $scope.$on('child', function (event, data) { // 做某事 }); // 取消订阅... // 这可能会放在回调或其他东西中 myListener();
标签: angularjs