javascript – 部分和模板的复杂嵌套
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 部分和模板的复杂嵌套,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2697字,纯文字阅读大概需要4分钟。
内容图文
![javascript – 部分和模板的复杂嵌套](/upload/InfoBanner/zyjiaocheng/713/a0724615b98e4e3f966f39c71f487306.jpg)
我的问题涉及如何在AngularJS应用程序中处理模板(也称为部分)的复杂嵌套.
描述我的情况的最好方法是使用我创建的图像:
正如您所看到的,这可能是一个包含大量嵌套模型的相当复杂的应用程序.
该应用程序是单页面的,因此它使用ng-view属性加载一个index.html,其中包含DOM中的div元素.
对于圆圈1,您会看到有一个主导航将适当的模板加载到ng视图中.我是通过将$routeParams传递给主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' })
}]);
在圆圈2中,加载到ng视图中的模板具有附加的子导航.然后这个子导航需要将模板加载到它下面的区域 – 但由于ng-view已被使用,我不知道如何去做.
我知道我可以在第一个模板中包含其他模板,但这些模板都非常复杂.我想将所有模板分开,以使应用程序更容易更新,并且不必依赖于必须加载的父模板才能访问其子代.
在第3圈中,您可以看到事情变得更加复杂.子导航模板可能具有第二个子导航,需要将其自己的模板加载到圆圈4中的区域
如何构建AngularJS应用程序来处理模板的这种复杂嵌套,同时保持它们彼此分离?
解决方法:
好吧,因为你现在只能有一个ngView指令…我使用嵌套的指令控件.这允许您在它们之间设置模板和继承(或隔离)范围.除此之外,我使用ng-switch甚至只是ng-show来根据$routeParams中的内容选择我正在显示的控件.
编辑这里有一些示例伪代码,可以让您了解我在说什么.使用嵌套的子导航.
这是主应用页面
<!-- primary nav -->
<a href="#/page/1">Page 1</a>
<a href="#/page/2">Page 2</a>
<a href="#/page/3">Page 3</a>
<!-- display the view -->
<div ng-view>
</div>
子导航指令
app.directive('mySubNav', function(){
return {
restrict: 'E',
scope: {
current: '=current'
},
templateUrl: 'mySubNav.html',
controller: function($scope) {
}
};
});
子导航的模板
<a href="#/page/1/sub/1">Sub Item 1</a>
<a href="#/page/1/sub/2">Sub Item 2</a>
<a href="#/page/1/sub/3">Sub Item 3</a>
主页面的模板(来自主导航)
<my-sub-nav current="sub"></my-sub-nav>
<ng-switch on="sub">
<div ng-switch-when="1">
<my-sub-area1></my-sub-area>
</div>
<div ng-switch-when="2">
<my-sub-area2></my-sub-area>
</div>
<div ng-switch-when="3">
<my-sub-area3></my-sub-area>
</div>
</ng-switch>
主页的控制器. (来自主导航)
app.controller('page1Ctrl', function($scope, $routeParams) {
$scope.sub = $routeParams.sub;
});
子区域的指令
app.directive('mySubArea1', function(){
return {
restrict: 'E',
templateUrl: 'mySubArea1.html',
controller: function($scope) {
//controller for your sub area.
}
};
});
内容总结
以上是互联网集市为您收集整理的javascript – 部分和模板的复杂嵌套全部内容,希望文章能够帮你解决javascript – 部分和模板的复杂嵌套所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。