Ma question consiste à savoir comment gérer l'imbrication complexe de modèles (également appelés partiels ) dans une application AngularJS.
La meilleure façon de décrire ma situation est avec une image que j'ai créée:
Comme vous pouvez le voir, cela peut être une application assez complexe avec beaucoup de modèles imbriqués.
L'application est d'une seule page, elle charge donc un index.html qui contient un élément div dans le DOM avec l' ng-view
attribut.
Pour le cercle 1 , vous voyez qu'il existe une navigation principale qui charge les modèles appropriés dans le ng-view
. Je fais cela en passant $routeParams
au module principal de l'application. Voici un exemple de ce qui se trouve dans mon application:
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' })
}]);
Dans le cercle 2 , le modèle chargé dans le ng-view
possède une sous-navigation supplémentaire . Cette sous-navigation doit ensuite charger des modèles dans la zone située en dessous - mais comme ng-view est déjà utilisé, je ne sais pas comment procéder.
Je sais que je peux inclure des modèles supplémentaires dans le 1er modèle, mais ces modèles vont tous être assez complexes. Je voudrais garder tous les modèles séparés afin de faciliter la mise à jour de l'application et ne pas avoir de dépendance sur le modèle parent devant être chargé pour accéder à ses enfants.
Dans le cercle 3 , vous pouvez voir que les choses deviennent encore plus complexes. Il est possible que les modèles de sous-navigation aient une 2e sous-navigation qui devra également charger ses propres modèles dans la zone du cercle 4
Comment procéder pour structurer une application AngularJS pour gérer une imbrication complexe de modèles tout en les gardant tous séparés les uns des autres?