我的问题涉及如何在 AngularJS 应用程序中处理复杂的模板嵌套(也称为partials)。
描述我的情况的最佳方式是使用我创建的图像:
正如您所看到的,这有可能成为一个包含大量嵌套模型的相当复杂的应用程序。
该应用程序是单页的,因此它加载了一个index.html,其中包含 DOM 中的 div 元素和ng-view
属性。
对于第 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' })
}]);
在圈子 2中,加载到 中的模板ng-view
有一个额外的子导航。然后这个子导航需要将模板加载到它下面的区域 - 但由于 ng-view 已经被使用,我不知道如何去做。
我知道我可以在第一个模板中包含其他模板,但是这些模板都会非常复杂。我想将所有模板分开,以使应用程序更容易更新,并且不依赖于必须加载父模板才能访问其子模板。
在圈子 3中,您可以看到事情变得更加复杂。子导航模板有可能具有第二个子导航,该子导航需要将其自己的模板也加载到第4 圈中的区域中
如何构建一个 AngularJS 应用程序来处理如此复杂的模板嵌套,同时保持它们彼此分离?