Angularjs如何找出此时哪些控制器正在工作

时间:2017-08-02 12:07:56

标签: angularjs

目前有办法获得工作控制器列表吗?我的工厂里有一个对象,也有控制器,例如"myController"。因此,如果此控制器与模块断开连接,我需要使myFactory.object={}(使此对象为空)。

2 个答案:

答案 0 :(得分:2)

您可以使用绑定在控制器$destroy上的$scope事件来通知工厂。

选项可能是这样的:

.controller('MyController', ['$scope', 'MyFactory', function($scope, MyFactory) {

  $scope.$on('$destroy', function() {
    MyFactory.object = {};
  })

}])

答案 1 :(得分:0)

在您的工厂中使用_invokeQueue来获取已注册的控制器,提供等等

angular.module('myModule')['_invokeQueue'].forEach(function(valu‌e){ 
      console.log(value[2][0]) 
      if(value[2][0] === "myController"){
          myFactory.object={} // make the factory object null 
      } 
})