在基于模块的应用程序上工作,根据用户的不同,我将在公共视图中加载给定模板(视图)作为模块。问题是不同的视图需要不同的控制器,它们共享一小组常见的表单输入。
根据对我服务器的调用,我将获得一个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;
}])
我越是处理这个问题,我选择的整个方法就越困扰我。因此,如果有人对如何解决这个问题有任何建议,我会很乐意听到它。
编辑:所以我找到了一个非常简单的解决方法,但我会提出问题,以防万一有实际的方法。