AngularJS是否可以在另一个控制器中监听$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

在我的应用程序中,当一个控制器被销毁时,是否可以在另一个控制器中释放$destroy事件

您可以使用工厂/服务注册在控制器销毁时调用的回调

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事件,仅此而已。这样我就不必在每个控制器中手动广播/发出事件。为了提高效率,我编辑了这个问题。