Q:たとえば、アプリにモジュールがあり、そのためにディレクティブが記述されています。さらにいくつかのモジュールをアプリに追加し、別のモジュール用に記述された既存のディレクティブを再利用したいとします。どうすればそれを達成できますか。フィルタ、構成などに適用されるモジュールだけではありません。
モジュールを宣言するときは、その依存関係を指定します。したがって、次のようなディレクティブがある場合:
angular.module( 'moduleA', [] )
.directive( 'myDirective', function () {
// ...
});
別のモジュールからそのモジュールを要求できます。
angular.module( 'moduleB', [ 'moduleA' ] );
の配列引数angular.module
は、依存関係のリストです。
Q:モジュール内にサブモジュールを定義できますか?
モジュールは技術的にはすべて独立していますが、それを偽造することは非常に一般的です。moduleA
したがって、次のように「サブモジュール」で定義できます。
angular.module( 'moduleA.one', [] );
angular.module( 'moduleA.two', [] );
angular.module( 'moduleA', [
'moduleA.one',
'moduleA.two'
]);
また、開発者/読者には、とがの一部であることは明らかmoduleA.one
ですmoduleA.two
がmoduleA
、別のモジュールが依存している場合はいつでもmoduleA
、その2つのサブモジュールも含まれます。
しかし、技術的には、これらはすべて独立しているため、必要に応じてmoduleB
必要になる場合もあります。moduleA.two
Q:コントローラーを要素に動的に追加するにはどうすればよいですか?静的であってはなりません。つまり、htmlマークアップng-controllerを使用します。
これはおそらく良い考えではありません。「ビュー」は公式記録です。あなたのユースケースは何ですか?
Q:すべてのモジュール間で物事を共有したい場合、どうすればよいですか。たとえば、アプリ内のすべてのモジュールの外部で変数を定義し、モジュール内でそれらにアクセスしたいだけです。それは可能ですか。これは、個々のスコープ、共有スコープ、rootScopeなどで完全に機能するためです。
あなたが何を求めているのか理解できません。しかし、モジュールで何かを定義するときは、上で説明したように、それを要求するだけで他のモジュールからアクセスできます。ただし、AngularJSアプリでは、「すべてのモジュールの外」に何かwindow
が存在する必要があります。それ以外の場合はグローバルスコープ(例)で定義されていないため、すべてがモジュール内にある必要があります。これは悪い習慣です。
モジュールを構造化して大きなメリットを得る方法をよりよく理解するには、ngBoilerplate
キックスターターをチェックしてください:http: //ngbp.github.io/ngbp/。モジュール構造は、コードの再利用のために特別に設計されており、実際にこれらの概念の多くを示しています。
これらのいずれかについて自由に詳しく説明してください。回答を修正します。