Angularjs 获取应用程序中的控制器列表-良好做法

Angularjs 获取应用程序中的控制器列表-良好做法,angularjs,Angularjs,我需要在我的angular应用程序中有一个选项卡数组,每个选项卡都有自己的模板和控制器。每个控制器在其各自的单独文件中定义为app.controller('ctrlName')。在我的父控制器中,我有以下代码片段 var ctrlHash = {}; console.log(app._invokeQueue) for (var i = 0; i < app._invokeQueue.length; i++){ ctrlHash[ app._invokeQueue[i][2][0] ]

我需要在我的angular应用程序中有一个选项卡数组,每个选项卡都有自己的模板和控制器。每个控制器在其各自的单独文件中定义为
app.controller('ctrlName'
)。在我的父控制器中,我有以下代码片段

var ctrlHash = {};
console.log(app._invokeQueue)
for (var i = 0; i < app._invokeQueue.length; i++){
  ctrlHash[ app._invokeQueue[i][2][0] ] = app._invokeQueue[i][2][1][app._invokeQueue[i][2][1].length - 1];
}


$scope.tabs = [
  {
      ctrl :  ctrlHash['ctrl1'] 
    , heading : 'Tab 1'
  },
  {
      ctrl: ctrlHash['ctrl2']
    , heading: 'Tab 22'
  }
]
var-ctrlHash={};
console.log(app.\u invokeQueue)
对于(变量i=0;i

这是可行的,但我忍不住觉得这是一种非常糟糕的做法。有没有更有经验的人可以进来告诉我,这是否可以用于生产,或者是否有一种更优雅的角度方式来实现这一点?谢谢

为什么您需要这样一个控制器的参考?您试图实现的是什么,而不是通过设置ng co来实现的选项卡元素上的控制器?我想你可以创建一个服务(比如MenuService),你可以将每个控制器注入其中,根据需要旋转菜单对象,然后将其注入你的应用程序。我使用的是角度引导选项卡,我需要有一个按钮显示“下一个选项卡/上一个选项卡”。如果我在html中声明选项卡控制器,我将无法转到选项卡[I]。selected=true。您还可以解释一下您的菜单服务建议吗?如果我理解正确,我将为每个选项卡Ctrl注入MenuService,并在每个选项卡控制器的开头转到
MenuService.addController('controllerName',this)