最佳答案
我的问题涉及如何处理AngularJS应用程序中模板(也称为分音)的复杂嵌套。
最好的方式来描述我的情况是用我创造的图像:
正如您所看到的,这可能是一个具有大量嵌套模型的相当复杂的应用程序。
该应用程序是单页的,因此它在DOM中加载一个包含带有ng-view
属性的div元素的index . html。
你可以看到有一个Primary导航,它将适当的模板加载到ng-view
中。我通过将$routeParams
传递给主应用程序模块来做到这一点。下面是我的应用程序中的一个例子:
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' })
}]);
在圆2中,加载到ng-view
的模板有一个额外的子。这个子导航然后需要将模板加载到它下面的区域-但由于ng-view已经被使用,我不确定如何去做这件事。
我知道我可以在第一个模板中包含其他模板,但这些模板都非常复杂。我希望将所有模板分开,以便使应用程序更容易更新,并且不依赖于必须加载父模板才能访问其子模板。
圈3,你可以看到事情变得更加复杂。有可能子导航模板将有一个二子级导航,它需要将自己的模板加载到4圈中的区域
如何构造一个AngularJS应用程序来处理如此复杂的模板嵌套,同时又使它们彼此独立呢?