0

ユーザーに応じて、特定のテンプレート (ビュー) を共通ビュー内のモジュールとしてロードするモジュール ベースのアプリに取り組んでいます。問題は、異なるビューには異なるコントローラーが必要であり、それらは共通のフォーム入力の小さなセットを共有することです。

サーバーへの呼び出しに基づいて、そのユーザーに対してどのビュー/コントローラーをロードする必要があるかを含む 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;
}])

この問題に取り組むほど、私が選択したこのアプローチ全体が私を悩ませています。したがって、これを別の方法で解決する方法について何か提案があれば、喜んで聞きます。

編集:非常に簡単な回避策を見つけましたが、これを行う実際の方法がある場合に備えて、質問をそのままにしておきます。

4

0 に答える 0