Angular.js中ng-include用法及多标签页面的实现方式详解


Posted in Javascript onMay 07, 2017

前言

大家在平时的项目开发中,应该会经常遇到上图所示的需求,就是在一个页面中有多个标签,被选中的标签颜色会高亮显示,切换不同标签显示相应的不同内容。如果内容代码过多则写在同一个html文件就会显得特别乱,所以这里我们最好把页面代码分开单独管理,controller也可以分开来管理,这样就会显得清楚的多。

这里就要使用到Angularjs中个ng-include指令。下面来看看详细的介绍:

一、多标签的编写

首先需要了解需求:

      1.同时只能选中一个标签

     2.被选中的标签背景色以及自体颜色都将改变。

第一个需求我们可以使用一个flag变量来控制,即一个是flag另一个则是!flag。而第二个需求则可以使用ng-class指令来完成,提前把两个样式的class写好,通过ng-class来判断何时显示何种样式即可。

这里我把所有的逻辑代码都写在了HTML页面中,首先在页面初始化的时候使用ng-init指令初始化一个flag变量,使用ng-class绑定不同的样式,然后使用ng-click事件来动态改变flag。

代码如下:

<ion-view ng-init="test=true">
 <div class="bar bar-header bar-royal">
 <div class="title">Test</div>
 </div>
 <div class="bar bar-subheader">
 <div class="button-bar">
  <a class="button" ng-class="test?'button-positive':''" ng-click="test=true">button1</a>
  <a class="button" ng-class="!test?'button-positive':''" ng-click="test=false">button2</a>
 </div>
 </div>
 <ion-content class="has-subheader">
  </ion-content>
</ion-view>

二、Ng-Include的使用

多标签button编写好了,需要对点击的button展示对应的页面内容,这里使用ng-include来管理代码。如下:

<ion-content class="has-subheader">
 <div ng-show="test" ng-include="'template/template1.html'">这里不管写什么都不会展示,完全被ng-include取代</div>
 <div ng-show="!test" ng-include="'template/template2.html'"></div>
</ion-content>

这里我使用的是ng-show,即在页面加载的时候就把全部的内容加载完毕了,可以起到一个预加载的效果,当然,如果需要点击对应button的时候再展示相应的内容则可以使用ng-if,效果一样。

ng-include后面写的是html文件对应的url地址,是相对于index.html的地址。

来看一下template1的代码:

<div ng-controller="template1Controller">
 <div class="row">
 <div class="col text-center" ng-repeat="x in tests">{{x.name}}</div>
 </div>
</div>

我对template1进行了单独的controller管理,Ctrl代码为:

angular.module('includeExample', ['ionic'])
 .controller('template1Controller', ['$scope', function ($scope) {
 $scope.tests = [
  {
  name: 'test1'
  }, {
  name: 'test2'
  }, {
  name: 'test3'
  }
 ]
 }]);

到这,Ng-Include的用法大概就说完了,我觉得在项目的开发中还是比较有用的,分开管理逻辑和页面都会比较清晰,也会在一定程度上提高开发效率。

效果为:

Angular.js中ng-include用法及多标签页面的实现方式详解

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者使用Angular.js能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。
       

Javascript 相关文章推荐
表单的一些基本用法与技巧
Jul 15 Javascript
JavaScript实现检查页面上的广告是否被AdBlock屏蔽了的方法
Nov 03 Javascript
JavaScript实现信用卡校验方法
Apr 07 Javascript
jQuery插件easyUI实现通过JS显示Dialog的方法
Sep 16 Javascript
基于Phantomjs生成PDF的实现方法
Nov 07 Javascript
AJAX和jQuery动态加载数据的实现方法
Dec 05 Javascript
jQuery使用正则验证15/18身份证的方法示例
Apr 27 jQuery
前端常见跨域解决方案(全)
Sep 19 Javascript
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
Dec 06 jQuery
Vue2 添加数据可视化支持的方法步骤
Jan 02 Javascript
js中async函数结合promise的小案例浅析
Apr 14 Javascript
Laravel admin实现消息提醒、播放音频功能
Jul 10 Javascript
JavaScript的继承实现小结
May 07 #Javascript
vue2.0多条件搜索组件使用详解
Mar 26 #Javascript
Vue 进阶教程之v-model详解
May 06 #Javascript
jQuery动态追加页面数据以及事件委托详解
May 06 #jQuery
AngularJS封装$http.post()实例详解
May 06 #Javascript
JavaScript瀑布流布局实现代码
May 06 #Javascript
jquery点赞功能实现代码 点个赞吧!
May 29 #jQuery
You might like
php解析html类库simple_html_dom(详细介绍)
2013/07/05 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
原生JS操作网页给p元素添加onclick事件及表格隔行变色
2013/12/01 Javascript
使用javascript实现json数据以csv格式下载
2015/01/09 Javascript
jQuery中 prop() attr()使用详解
2015/05/19 Javascript
使用Chart.js图表库制作漂亮的响应式表单
2015/10/28 Javascript
跟我学习javascript创建对象(类)的8种方法
2015/11/20 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
2016/04/26 Javascript
jQuery的Each比JS原生for循环性能慢很多的原因
2016/07/05 Javascript
解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题
2018/08/24 Javascript
angularjs使用div模拟textarea文本框的方法
2018/10/02 Javascript
Vue入门之数量加减运算操作示例
2018/12/11 Javascript
js实现删除li标签一行内容
2019/04/16 Javascript
了解重排与重绘
2019/05/29 Javascript
JavaScript计算正方形面积
2019/11/26 Javascript
uni-app 自定义底部导航栏的实现
2020/12/11 Javascript
[02:42]DOTA2城市挑战赛收官在即 四强之争风起云涌
2018/06/05 DOTA
Python3.x和Python2.x的区别介绍
2013/02/12 Python
Python设计模式之抽象工厂模式
2016/08/25 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
2020/06/23 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
2020/05/25 Python
详解Python调用系统命令的六种方法
2021/01/28 Python
Pytorch 图像变换函数集合小结
2021/02/01 Python
css3实现一个div设置多张背景图片及background-image属性实例演示
2017/08/10 HTML / CSS
一款纯css3实现的鼠标经过按钮特效教程
2014/11/09 HTML / CSS
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
英国钻石公司:British Diamond Company
2020/02/16 全球购物
介绍一下linux的文件权限
2014/07/20 面试题
Servlet方面面试题
2016/09/28 面试题
学习保证书
2015/01/17 职场文书
房贷收入证明范本
2015/06/12 职场文书
2015年科学教研组工作总结
2015/07/22 职场文书
奶茶店的创业计划书该怎么写?
2019/07/15 职场文书
win10电脑双屏显示一个黑屏怎么办?win10电脑双屏显示一个黑屏解决方法
2022/07/15 数码科技
Redis Lua脚本实现ip限流示例
2022/07/15 Redis