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