Мой вопрос состоит в том, как решить сложную вложение шаблонов (также называемых частичными ) в приложении AngularJS.
Лучший способ описать мою ситуацию с помощью изображения, которое я создал:
Как видите, это может быть довольно сложным приложением с множеством вложенных моделей.
Приложение является одностраничным, поэтому оно загружает index.html, который содержит элемент div в DOM с 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 вы можете увидеть, что все становится еще сложнее. Существует вероятность того, что шаблоны суб-навигации будут иметь 2-ю суб-навигацию , которая должна будет загружать свои собственные шаблоны также в область в круге 4
Как можно структурировать приложение AngularJS, чтобы справиться с таким сложным вложением шаблонов, сохраняя их все отдельно друг от друга?