ユーザーに応じて、特定のテンプレート (ビュー) を共通ビュー内のモジュールとしてロードするモジュール ベースのアプリに取り組んでいます。問題は、異なるビューには異なるコントローラーが必要であり、それらは共通のフォーム入力の小さなセットを共有することです。
サーバーへの呼び出しに基づいて、そのユーザーに対してどのビュー/コントローラーをロードする必要があるかを含む JSON 応答を取得します。すべてのコントローラーがグローバルスコープにあったため、このソリューションは以前は正常に機能していました。
$scope.corporation.payloadController =
// Contains the String "ComputerPayloadCtrl"
[window]data.corporation.payloadController;
ただし、angular モジュール デザイン パターンを使用するようにアプリケーションを書き直した後、次のエラーが発生します ([window] は使用しなくなりました)。
Argument 'corporation.payloadController' is not a function, got string
コントローラーは既に定義されているため、文字列で参照する方法のみを探しています。
.controller('ComputerPayloadCtrl', ['PayloadService', '$scope',
function(PayloadService, $scope) {
$scope.payload = PayloadService.payload;
}])
この問題に取り組むほど、私が選択したこのアプローチ全体が私を悩ませています。したがって、これを別の方法で解決する方法について何か提案があれば、喜んで聞きます。
編集:非常に簡単な回避策を見つけましたが、これを行う実際の方法がある場合に備えて、質問をそのままにしておきます。