5

モジュールと angularjs のルーティングに関する質問があります。要件は、1 つのモジュールですべてのルーティング構成を定義することです。これを呼び出しましょうModuleRtr

ルートがトリガーされると、コントローラーを呼び出す必要があります (TestCtrたとえば、呼び出されます)。このコントローラーは別のモジュールで定義されています - と呼びましょうModuleCtrl

そうしようとすると、次のような例外が発生しました。

「引数TestCtrは関数ではありません。未定義です」

. その理由は、angular ブロードキャストイベント時に、リスナーが現在のモジュールの一部として$routeChangeSuccessコントローラー () にアクセスしようとするためです。そこにないため、エラーがスローされます。TestCtrModuleRtr

TestCtrコントローラーを作成するだけでModuleRtr(ルートが含まれているものと同じ)、すべてが機能します。しかし、私はそれを望んでいませんTestCtr。別のモジュールに入れたいのです。ModuleCtrlまた、モジュールでルートを定義したくありません。

したがって、より簡単に言えば、私の質問は次のとおりです。あるモジュール ( ) で定義されたルートがModuleRtr、別のモジュール ( ) で定義されたコントローラーを呼び出すことは可能ModuleCtrlですか?

私が言及するのを忘れた何か...私はこれらの2つのモジュールを決してバインドしたくありません。もちろん、モジュールの作成中に依存関係をリストすることも含まれます。の動的読み込みを既に試しTestCtrましたが、問題は解決しませんでした。

シナリオは次のとおりです。2 つの angularjs アプリケーション (モジュール) があります。彼らはお互いについて何も知りません...1つのことを除いて-共有/共通の場所のどこかに、特定の構造(契約など)に従うオブジェクトがあります。最初のモジュールはそこにデータを書き込みます。次に、2 番目のモジュールから共通の関数を実行します (これは実際に私が尋ねている質問です - どのように?)。次に、2番目のモジュールは、どこに行くべきか(それはコントラクトです)、何を読み、何をすべきかをすでに知っています。これを行う 1 つの方法は、他のモジュールが作成されたときに、モジュールの依存関係を表す文字列を動的に生成することです。それが良い解決策かどうかはわかりません...

どうもありがとう!

4

1 に答える 1

1

次のような各機能のサブモジュールを含む単一のモジュールを使用できます。

angular.module('myApp.home',[]);
angular.module('myApp.routing',[]);
...modules here...
angular.module('myApp', [
  'myApp.home',
  'myApp.routing'
]);

したがって、myApp.home からメソッドを送信して、myApp から中間メソッドを呼び出し、これを myApp.routing メソッドを呼び出すことができます。

少なくとも、これは私がそれを見る方法です。

于 2014-11-27T15:11:43.460 に答える