Meine Frage betrifft den Umgang mit der komplexen Verschachtelung von Vorlagen (auch Partials genannt ) in einer AngularJS-Anwendung.
Ich beschreibe meine Situation am besten mit einem Bild, das ich erstellt habe:
Wie Sie sehen, kann dies eine ziemlich komplexe Anwendung mit vielen verschachtelten Modellen sein.
Die Anwendung ist einseitig und lädt daher eine index.html , die ein div-Element im DOM mit dem ng-view
Attribut enthält.
Für Kreis 1 sehen Sie, dass es eine primäre Navigation gibt, die die entsprechenden Vorlagen in die lädt ng-view
. Ich gehe $routeParams
dazu zum Haupt-App-Modul über. Hier ist ein Beispiel dafür, was in meiner App enthalten ist:
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' })
}]);
In Kreis 2 verfügt die Vorlage, die in die geladen wird, ng-view
über eine zusätzliche Unternavigation . Dieses Sub-Navi muss dann Vorlagen in den Bereich darunter laden - aber da ng-view bereits verwendet wird, bin ich mir nicht sicher, wie ich das machen soll.
Ich weiß, dass ich zusätzliche Vorlagen in die erste Vorlage aufnehmen kann, aber diese Vorlagen werden alle ziemlich komplex sein. Ich möchte alle Vorlagen getrennt halten, damit die Anwendung einfacher aktualisiert werden kann und keine Abhängigkeit von der übergeordneten Vorlage besteht, die geladen werden muss, um auf ihre untergeordneten Vorlagen zugreifen zu können.
In Kreis 3 sehen Sie, wie die Dinge noch komplexer werden. Es besteht das Potenzial, dass die Subnavigationsvorlagen eine zweite Subnavigation haben , die auch ihre eigenen Vorlagen in den Bereich in Kreis 4 laden muss
Wie strukturiert man eine AngularJS-App, um mit solch komplexen Verschachtelungen von Vorlagen umzugehen und sie alle voneinander zu trennen?