我的问题涉及如何在AngularJS应用程序中处理复杂的templates(也称为partials)嵌套.
描述我的情况最好的方式是用我创作的一张图片:
正如您所见,这可能是一个具有大量嵌套模型的相当复杂的应用程序.
该应用程序是单页的,因此它加载一个index.html,该index.html在DOM中包含一个带有ng-view
属性的div元素.
For circle 1,您可以看到有一个主导航,它将适当的模板加载到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' })
}]);
In circle 2,加载到ng-view
中的模板还有一个sub-navigation.然后,这个副导航需要将模板加载到它下面的区域中——但由于ng view已经被使用,我不确定如何进行此操作.
我知道我可以包括额外的模板在第一个模板,但这些模板都将是相当复杂的.我希望将所有模板分开,以便使应用程序更容易更新,并且不依赖于必须加载父模板才能访问其子模板.
In circle 3,你可以看到事情变得更加复杂.子导航模板有可能将具有2nd sub-navigation,其将需要将其自己的模板也加载到circle 4中的区域中
How does one go about structuring an AngularJS app to deal with such complex nesting of templates while keeping them all separate from one another?