AngularJS是否可以在另一个控制器中监听$destroy?
在我的应用程序中,当一个控制器被销毁时,是否可以在另一个控制器中释放$destroy事件 您可以使用工厂/服务注册在控制器销毁时调用的回调AngularJS是否可以在另一个控制器中监听$destroy?,angularjs,angularjs-scope,angularjs-events,Angularjs,Angularjs Scope,Angularjs Events,在我的应用程序中,当一个控制器被销毁时,是否可以在另一个控制器中释放$destroy事件 您可以使用工厂/服务注册在控制器销毁时调用的回调 var app = angular.module('plunker', []); app.controller('MainCtrl', function($scope, notifyService) { $scope.logs = [] notifyService.callback = function(){ $scope.logs.pus
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope, notifyService) {
$scope.logs = []
notifyService.callback = function(){
$scope.logs.push('controller destroyed on: ' + new Date().toString())
}
});
app.controller('directiveController', function($scope, notifyService){
$scope.$on('$destroy', notifyService.callback)
})
app.service('notifyService', function(){
this.callback = angular.noop
})
app.directive('toggleDirective', function(){
return {
template: "<div>I'm directive with controller that will be destroyed</div>",
controller: 'directiveController'
}
})
var-app=angular.module('plunker',[]);
应用程序控制器('MainCtrl',函数($scope,notifyService){
$scope.logs=[]
notifyService.callback=函数(){
$scope.logs.push('controller destructed on:'+new Date().toString())
}
});
app.controller('directiveController',函数($scope,notifyService){
$scope.$on(“$destroy”,notifyService.callback)
})
app.service('notifyService',function(){
this.callback=angular.noop
})
app.directive('toggleDirective',function(){
返回{
模板:“我是控制器的指令,将被销毁”,
控制器:“directiveController”
}
})
除了
$destroy
之外,您不能使用任何其他自定义事件名称吗?你不想听到控制器被销毁…如果它没有被销毁,我想$destroy事件也不会发生。。。苏。。否。当一个控制器及其作用域被销毁时,它将触发$destroy事件。我想知道的是,我是否可以在另一个控制器中侦听这个$destroy事件,仅此而已。这样我就不必在每个控制器中手动广播/发出事件。为了提高效率,我编辑了这个问题。