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 相关文章推荐
JS自动缩小超出大小的图片
Oct 12 Javascript
JQuery入门—编写一个简单的JQuery应用案例
Jan 03 Javascript
js函数定时器实现定时读取系统实时连接数
Apr 30 Javascript
jquery实现浮动的侧栏实例
Jun 25 Javascript
JQuery自适应窗口大小导航菜单附源码下载
Sep 01 Javascript
学习JavaScript设计模式(多态)
Nov 25 Javascript
ReactNative-JS 调用原生方法实例代码
Oct 08 Javascript
用node和express连接mysql实现登录注册的实现代码
Jul 05 Javascript
用Vue写一个分页器的示例代码
Apr 22 Javascript
React router动态加载组件之适配器模式的应用详解
Sep 12 Javascript
vueScroll实现移动端下拉刷新、上拉加载
Mar 22 Javascript
实现高性能javascript的注意事项
May 27 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
echo(),print(),print_r()之间的区别?
2006/11/19 PHP
file_get_contents(&quot;php://input&quot;, &quot;r&quot;)实例介绍
2013/07/01 PHP
复制小说文本时出现的随机乱码的去除方法
2010/09/07 Javascript
基于jquery实现控制经纬度显示地图与卫星
2013/05/20 Javascript
jquery日历控件实现方法分享
2014/03/07 Javascript
js判断上传文件类型判断FileUpload文件类型代码
2014/05/20 Javascript
jQuery对象的selector属性用法实例
2014/12/27 Javascript
javascript引用类型指针的工作方式
2015/04/13 Javascript
JavaScript实现彩虹文字效果的方法
2015/04/16 Javascript
举例详解Python中smtplib模块处理电子邮件的使用
2015/06/24 Javascript
AngularJs html compiler详解及示例代码
2016/09/01 Javascript
详谈js中数组(array)和对象(object)的区别
2017/02/27 Javascript
如何编写jquery插件
2017/03/29 jQuery
jQuery Validate 校验多个相同name的方法
2017/05/18 jQuery
JS获取填报扩展单元格控件的值的解决办法
2017/07/14 Javascript
Vue上传组件vue Simple Uploader的用法示例
2017/08/25 Javascript
0基础学习前端开发的一些建议
2020/07/14 Javascript
[02:27]2014DOTA2国际邀请赛 VG赛后采访:更大的挑战在等着我们
2014/07/13 DOTA
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
2014/06/10 Python
基于python实现微信模板消息
2015/12/21 Python
Python的math模块中的常用数学函数整理
2016/02/04 Python
解决Python对齐文本字符串问题
2019/08/28 Python
如何将你的应用迁移到Python3的三个步骤
2019/12/22 Python
Python基础之函数原理与应用实例详解
2020/01/03 Python
python绘制趋势图的示例
2020/09/17 Python
英国家喻户晓的高街品牌:River Island
2017/11/28 全球购物
英国综合网上购物商城:The Hut
2018/07/03 全球购物
泰国网上购物:Shopee泰国
2018/09/14 全球购物
马来西亚在线购物:POPLOOK.com
2019/12/09 全球购物
数字天堂软件测试面试题
2012/12/23 面试题
互联网创业计划书的书写步骤
2014/01/28 职场文书
护士试用期自我鉴定
2014/02/08 职场文书
拆迁委托协议书
2014/09/15 职场文书
2014年法制宣传日活动方案
2014/11/02 职场文书
决心书格式及范文
2019/06/24 职场文书
matplotlib画混淆矩阵与正确率曲线的实例代码
2021/06/01 Python