Minha pergunta envolve como lidar com o aninhamento complexo de modelos (também chamados de parciais ) em um aplicativo AngularJS.
A melhor maneira de descrever minha situação é com uma imagem que eu criei:
Como você pode ver, isso tem o potencial de ser um aplicativo bastante complexo com muitos modelos aninhados.
O aplicativo é de página única, portanto, carrega um index.html que contém um elemento div no DOM com o ng-view
atributo
Para o círculo 1 , você vê que existe uma navegação Primária que carrega os modelos apropriados no ng-view
. Estou fazendo isso passando $routeParams
para o módulo principal do aplicativo. Aqui está um exemplo do que está no meu aplicativo:
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' })
}]);
No círculo 2 , o modelo carregado na ng-view
possui uma subavegação adicional . Essa sub-navegação precisa carregar modelos na área abaixo dela - mas como o ng-view já está sendo usado, não tenho certeza de como fazê-lo.
Eu sei que posso incluir modelos adicionais no primeiro modelo, mas todos eles serão bastante complexos. Gostaria de manter todos os modelos separados para facilitar a atualização do aplicativo e não ter uma dependência do modelo pai que precisa ser carregado para acessar seus filhos.
No círculo 3 , você pode ver as coisas ficarem ainda mais complexas. Existe o potencial de que os modelos de subavegação tenham uma segunda subavegação que precisará carregar seus próprios modelos também na área do círculo 4
Como estruturar um aplicativo AngularJS para lidar com esse complexo aninhamento de modelos, mantendo-os todos separados um do outro?