La mia domanda riguarda come affrontare la complessa nidificazione di modelli (detti anche parziali ) in un'applicazione AngularJS.
Il modo migliore per descrivere la mia situazione è con un'immagine che ho creato:
Come puoi vedere, questo ha il potenziale per essere un'applicazione abbastanza complessa con molti modelli nidificati.
L'applicazione è a pagina singola, quindi carica un index.html che contiene un elemento div nel DOM con l' ng-view
attributo.
Per la cerchia 1 , vedi che esiste una navigazione principale che carica i modelli appropriati nella cartella ng-view
. Lo sto facendo passando $routeParams
al modulo dell'app principale. Ecco un esempio di ciò che è nella mia app:
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' })
}]);
Nel cerchio 2 , il modello che viene caricato in ng-view
ha una navigazione secondaria aggiuntiva . Questo sub-nav deve quindi caricare i template nell'area sottostante, ma poiché ng-view è già in uso, non sono sicuro di come procedere.
So che posso includere modelli aggiuntivi nel 1 ° modello, ma questi modelli saranno tutti piuttosto complessi. Vorrei mantenere separati tutti i modelli per rendere l'applicazione più facile da aggiornare e non avere una dipendenza dal modello principale che deve essere caricato per accedere ai suoi figli.
Nel cerchio 3 , puoi vedere le cose diventare ancora più complesse. Esiste il potenziale che i modelli di navigazione secondaria abbiano una seconda navigazione secondaria che dovrà caricare i propri modelli anche nell'area del cerchio 4
Come si fa a strutturare un'app AngularJS per gestire un annidamento di modelli così complesso, mantenendoli separati l'uno dall'altro?