angularJs で複数回モジュールを定義しているのはどういうことだろう?
イシュー
- angularでmoduleを変数定義するが、controllerの定義と、configの定義で複数回呼んだりする。これはいったい何をしようとしているのか?
参考
- AngularJS でモデルとコントローラーをモジュール化する - present
- AngularJS - Angular JS で複数のコントローラ間でモデル(状態や値)を共有する方法 3 種類 - Qiita
- モジュール | AngularJS 1.2 日本語リファレンス | js STUDIO
- 翻訳元:AngularJS
- The declarative process is easier to understand.
- You can package code as reusable modules.
- The modules can be loaded in any order (or even in parallel) because modules delay execution.
- Unit tests only have to load relevant modules, which keeps them fast.
- End-to-end tests can use modules to override configuration.
- プロセスがより宣言的で、理解しやすくなります。(翻訳に自信なし)
- ユニットテストで、全てのモジュールを読み込む必要が無く、ユニットテストが比較的書きやすくなります。
- 追加モジュールは、シナリオテストの読み込みが可能で、 設定のいくつかを上書きし、アプリケーションのエンドツーエンドテストの手助けしてくれます。
- サードパーティのコードを再利用可能なパッケージにすることが可能です。 *モジュールを任意/並列で順に読み込むことが可能です。 (モジュール実行の遅延性質のため)
- 翻訳元:AngularJS
コード
ポイント
- モジュールには、configブロックとrunブロックがある
- value, factory, directive, filter は configブロック
- angular.moduleメソッドで既存のモジュールを呼び出すことができる。
//モジュールを定義 var myModule = angular.module('myModule', []); // ディレクティブとサービスを追加 myModule.service('myService', ...); myModule.directive('myDirective', ...); // 新しいモジュールの作成によって、 // myServiceとmyDirectiveの両方は上書きされます。 var myModule = angular.module('myModule', []); // myOtherModuleはまだ未定義のため、エラーがスローされます。 var myModule = angular.module('myOtherModule');
参考
- AngularJS のプロジェクト構成をどうするか - AngularJS Ninja
- factoryはserviceの仲間
- filterは、formatの仲間