モジュールと angularjs のルーティングに関する質問があります。要件は、1 つのモジュールですべてのルーティング構成を定義することです。これを呼び出しましょうModuleRtr
。
ルートがトリガーされると、コントローラーを呼び出す必要があります (TestCtr
たとえば、呼び出されます)。このコントローラーは別のモジュールで定義されています - と呼びましょうModuleCtrl
。
そうしようとすると、次のような例外が発生しました。
「引数
TestCtr
は関数ではありません。未定義です」
. その理由は、angular ブロードキャストイベント時に、リスナーが現在のモジュールの一部として$routeChangeSuccess
コントローラー () にアクセスしようとするためです。そこにないため、エラーがスローされます。TestCtr
ModuleRtr
TestCtr
コントローラーを作成するだけでModuleRtr
(ルートが含まれているものと同じ)、すべてが機能します。しかし、私はそれを望んでいませんTestCtr
。別のモジュールに入れたいのです。ModuleCtrl
また、モジュールでルートを定義したくありません。
したがって、より簡単に言えば、私の質問は次のとおりです。あるモジュール ( ) で定義されたルートがModuleRtr
、別のモジュール ( ) で定義されたコントローラーを呼び出すことは可能ModuleCtrl
ですか?
私が言及するのを忘れた何か...私はこれらの2つのモジュールを決してバインドしたくありません。もちろん、モジュールの作成中に依存関係をリストすることも含まれます。の動的読み込みを既に試しTestCtr
ましたが、問題は解決しませんでした。
シナリオは次のとおりです。2 つの angularjs アプリケーション (モジュール) があります。彼らはお互いについて何も知りません...1つのことを除いて-共有/共通の場所のどこかに、特定の構造(契約など)に従うオブジェクトがあります。最初のモジュールはそこにデータを書き込みます。次に、2 番目のモジュールから共通の関数を実行します (これは実際に私が尋ねている質問です - どのように?)。次に、2番目のモジュールは、どこに行くべきか(それはコントラクトです)、何を読み、何をすべきかをすでに知っています。これを行う 1 つの方法は、他のモジュールが作成されたときに、モジュールの依存関係を表す文字列を動的に生成することです。それが良い解決策かどうかはわかりません...
どうもありがとう!