AngularJS:动态引用控制器(按名称)?

时间:2013-06-09 12:37:54

标签: javascript angularjs

在基于模块的应用程序上工作,根据用户的不同,我将在公共视图中加载给定模板(视图)作为模块。问题是不同的视图需要不同的控制器,它们共享一小组常见的表单输入。

根据对我服务器的调用,我将获得一个JSON响应,其中包含应为该用户加载的视图/控制器。由于我的所有控制器都在全球范围内,因此该解决方案工作得很好:

$scope.corporation.payloadController = 
          // Contains the String "ComputerPayloadCtrl"
          [window]data.corporation.payloadController; 

然而,现在,在我重写应用程序以使用角度模块设计模式后,我收到以下错误(我不再使用[window]):

Argument 'corporation.payloadController' is not a function, got string

控制器已经定义,所以我只想找到一种通过String引用它的方法。

.controller('ComputerPayloadCtrl', ['PayloadService', '$scope',
    function(PayloadService, $scope) {
        $scope.payload = PayloadService.payload;
}])

我越是处理这个问题,我选择的整个方法就越困扰我。因此,如果有人对如何解决这个问题有任何建议,我会很乐意听到它。

编辑:所以我找到了一个非常简单的解决方法,但我会提出问题,以防万一有实际的方法。

0 个答案:

没有答案