Moje pytanie dotyczy sposobu radzenia sobie ze złożonym zagnieżdżaniem szablonów (zwanych także częściowymi ) w aplikacji AngularJS.
Najlepszym sposobem opisania mojej sytuacji jest obraz, który stworzyłem:
Jak widać, może to być dość złożona aplikacja z wieloma zagnieżdżonymi modelami.
Aplikacja jest jednostronicowa, więc ładuje plik index.html zawierający element div w DOM z ng-view
atrybutem.
Dla kręgu 1 widać, że istnieje Nawigacja podstawowa, która ładuje odpowiednie szablony do ng-view
. Robię to, przechodząc $routeParams
do głównego modułu aplikacji. Oto przykład tego, co jest w mojej aplikacji:
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' })
}]);
W okręgu 2 szablon ładowany do ng-view
ma dodatkową nawigację podrzędną . Ta nawigacja podrzędna musi następnie załadować szablony do obszaru poniżej - ale ponieważ ng-view jest już używany, nie jestem pewien, jak to zrobić.
Wiem, że mogę dołączyć dodatkowe szablony do pierwszego szablonu, ale wszystkie te szablony będą dość złożone. Chciałbym zachować wszystkie szablony osobno, aby aplikacja była łatwiejsza do aktualizacji i nie była zależna od szablonu nadrzędnego, który należy załadować, aby uzyskać dostęp do jego elementów podrzędnych.
W kręgu 3 możesz zobaczyć, że sprawy stają się jeszcze bardziej złożone. Istnieje możliwość, że szablony nawigacji podrzędnej będą miały drugą nawigację podrzędną, która będzie musiała również załadować własne szablony do obszaru w okręgu 4
W jaki sposób buduje się aplikację AngularJS, aby radzić sobie z tak złożonym zagnieżdżaniem szablonów, zachowując je wszystkie oddzielnie?