在基于模块的应用程序上工作,根据用户,我将加载给定模板(视图)作为公共视图中的模块。问题是不同的视图需要不同的控制器,并且它们共享一小组通用表单输入。
基于对我的服务器的调用,我将获得一个 JSON 响应,其中包含应该为该用户加载的视图/控制器。由于我的所有控制器都在全局范围内,因此该解决方案早些时候运行良好:
$scope.corporation.payloadController =
// Contains the String "ComputerPayloadCtrl"
[window]data.corporation.payloadController;
然而,现在,在我重写应用程序以使用角度模块设计模式后,我收到以下错误(我不再使用 [window]):
Argument 'corporation.payloadController' is not a function, got string
控制器已经定义好了,所以我只是在寻找一种通过字符串引用它的方法。
.controller('ComputerPayloadCtrl', ['PayloadService', '$scope',
function(PayloadService, $scope) {
$scope.payload = PayloadService.payload;
}])
我处理这个问题的次数越多,我选择的整个方法就越困扰我。因此,如果有人对如何解决这个问题有任何建议,我会很高兴听到。
编辑:所以我找到了一个非常简单的解决方法,但如果有实际的方法可以做到这一点,我会让问题继续存在。