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 相关文章推荐
最简单的JavaScript验证整数、小数、实数、有效位小数正则表达式
Apr 17 Javascript
Juery解决tablesorter中文排序和字符范围的方法
May 06 Javascript
利用js实现禁止复制文本信息
Jun 03 Javascript
JS实现适合于后台使用的动画折叠菜单效果
Sep 21 Javascript
js按条件生成随机json:randomjson实现方法
Apr 07 Javascript
Angular.js自动化测试之protractor详解
Jul 07 Javascript
用最简单的方法判断JavaScript中this的指向(推荐)
Sep 04 Javascript
mac中利用NVM管理不同node版本的方法详解
Nov 08 Javascript
jq.ajax+php+mysql实现关键字模糊查询(示例讲解)
Jan 02 Javascript
基于vue实现网站前台的权限管理(前后端分离实践)
Jan 13 Javascript
Layui Table js 模拟选中checkbox的例子
Sep 03 Javascript
jQuery实现的上拉刷新功能组件示例
May 01 jQuery
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 配置后台登录以及模板引入
2017/01/24 PHP
JS中剪贴板兼容性、判断复制成功或失败
2021/03/09 Javascript
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
jQuery 数据缓存data(name, value)详解及实现
2010/01/04 Javascript
一行代码实现纯数据json对象的深度克隆实现思路
2013/01/09 Javascript
js如何取消事件冒泡
2013/09/23 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
2014/09/29 Javascript
node.js中的fs.readlink方法使用说明
2014/12/17 Javascript
javascript实时显示当天日期的方法
2015/05/20 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
JS实现不使用图片仿Windows右键菜单效果代码
2015/10/22 Javascript
javascript获取wx.config内部字段解决微信分享
2016/03/09 Javascript
react-native 封装选择弹出框示例(试用ios&amp;android)
2017/07/11 Javascript
微信小程序获取微信运动步数的实例代码
2017/07/20 Javascript
vue路由事件beforeRouteLeave及组件内定时器的清除方法
2018/09/29 Javascript
微信小程序实现笑脸评分功能
2018/11/03 Javascript
js实现图片局部放大效果详解
2019/03/18 Javascript
vscode配置vue下的es6规范自动格式化详解
2019/03/20 Javascript
nodejs通过钉钉群机器人推送消息的实现代码
2019/05/05 NodeJs
JS使用Chrome浏览器实现调试线上代码
2020/07/23 Javascript
[51:52]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
python网络编程学习笔记(三):socket网络服务器
2014/06/09 Python
使用Python解析JSON数据的基本方法
2015/10/15 Python
python通过elixir包操作mysql数据库实例代码
2018/01/31 Python
Python小游戏之300行代码实现俄罗斯方块
2019/01/04 Python
Python调用C语言的实现
2019/07/26 Python
python经典趣味24点游戏程序设计
2019/07/26 Python
three.js模拟实现太阳系行星体系功能
2019/09/03 HTML / CSS
Spartoo比利时:欧洲时尚购物网站
2017/12/06 全球购物
Airbnb爱彼迎官网:成为爱彼迎房东,赚取收入
2019/03/14 全球购物
大学生两会学习心得体会
2014/03/10 职场文书
家长寄语大全
2014/04/02 职场文书
高一学生期末评语
2014/04/25 职场文书
微笑面对生活演讲稿
2014/09/23 职场文书
给学校的建议书400字
2015/09/14 职场文书
mysql的单列多值存储实例详解
2022/04/05 MySQL