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

Angularjs如何找出此时哪些控制器正在工作,angularjs,Angularjs,目前有没有办法获得正在工作的控制器列表?我的工厂中有一个对象,也有控制器,例如“myController”。因此,如果此控制器与模块断开连接,我需要将myFactory.object={}(将此对象设为空)。在您的工厂中,使用\u invokeQueue获取注册的控制器、提供等 angular.module('myModule')['_invokeQueue'].forEach(function(valu‌e){ console.log(value[2][0]) if

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

在您的工厂中,使用
\u 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 
      } 
})

在您的工厂中,使用
\u 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 
      } 
})

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

一个选项可以是这样的:

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

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

}])

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

一个选项可以是这样的:

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

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

}])


$state.current.controller。这个怎么样?可能是重复的检查这个问题。这可能会有帮助。这是不可能的-有些控制器甚至没有名字。没有问题,因为这是XY问题。$state.current.controller。这个怎么样?可能是重复的检查这个问题。这可能会有帮助。这是不可能的-有些控制器甚至没有名字。这不是问题,因为这是XY问题。什么是函数param
value
?这是经过foreach的数组对象对不起,我不明白它到底是如何工作的。您能详细解释一下吗?
[''u invokeQueue']
返回一个数组。所以为了访问数组中的元素,我们需要使用一个循环。这就是为什么foreach循环在那里我有一个工厂
app.factory('myFactory',function(){return{obect:{}}}})
我不明白如何使用这个工作控制器检查:(什么是函数param
value
?那是经过foreach的数组对象对不起,我不明白它到底是如何工作的。你能详细解释一下吗?
[''u invokeQueue']
返回一个数组。所以为了访问数组中的元素,我们需要使用一个循环。这就是为什么foreach循环在那里我有一个工厂
app.factory('myFactory',function(){return{obect:{}}}})
我不明白如何使用这个工作控制器检查:(如果我使用controller作为构造而不是$scope,我可以编写
this.$on。)('destroy…
,对吗?@RoGGeR No.
这个
不是作用域。没有$on方法,除非你定义它。$scope应该在控制器中使用。更好的方法是钩子。如果我使用控制器作为构造,而不是$scope,我可以写这个。$on('destroy…,对吗?@RoGGeR No.
不是作用域。除非您定义它,否则没有$on方法。$作用域应该在控制器中使用。更可取的方法是钩子。