私の質問は、AngularJSアプリケーションでテンプレート(パーシャルとも呼ばれる)の複雑なネストを処理する方法に関係しています。
私の状況を説明する最良の方法は、私が作成した画像を使用することです:
ご覧のように、これは多くのネストされたモデルを持つかなり複雑なアプリケーションになる可能性があります。
アプリケーションは単一ページであるため、DOMに属性を持つdiv要素を含むindex.htmlをロードしng-view
ます。
サークル1の場合、適切なテンプレートをにロードするプライマリナビゲーションがあることがわかりますng-view
。これを行う$routeParams
には、メインアプリモジュールに渡します。これが私のアプリにあるものの例です:
angular.module('myApp', []).
config(['$routeProvider', function($routeProvider) {
$routeProvider.
when("/job/:jobId/zones/:zoneId", { controller: JobDetailController, templateUrl: 'assets/job_list_app/templates/zone_edit.html' }).
when("/job/:jobId/initial_inspection", { controller: JobDetailController, templateUrl: 'assets/job_list_app/templates/initial_inspection.html' }).
when("/job/:jobId/zones/:zoneId/rooms/:roomId", { controller: JobDetailController, templateUrl: 'assets/job_list_app/templates/room_edit.html' })
}]);
サークル2では、に読み込まれるテンプレートにng-view
追加のサブナビゲーションがあります。このサブナビゲーションは、その下の領域にテンプレートをロードする必要があります-ng-viewはすでに使用されているため、これを実行する方法がわかりません。
追加のテンプレートを1番目のテンプレートに含めることができることはわかっていますが、これらのテンプレートはすべてかなり複雑になります。アプリケーションを更新しやすくし、子にアクセスするためにロードする必要がある親テンプレートに依存しないようにするために、すべてのテンプレートを別々に保持したいと思います。
サークル3では、状況がさらに複雑になっていることがわかります。サブナビゲーションテンプレートには、独自のテンプレートをサークル4の領域にロードする必要がある2番目のサブナビゲーションが含まれる可能性があります。
AngularJSアプリを構造化して、テンプレートのこのような複雑な入れ子を処理しながら、テンプレートをすべて互いに分離したままにするにはどうすればよいですか?