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 相关文章推荐
写了10年的Javascript也未必全了解的连续赋值运算
Mar 25 Javascript
jQuery load方法用法集锦
Dec 06 Javascript
jquery select动态加载选择(兼容各种浏览器)
Feb 01 Javascript
js实现表格字段排序
Feb 19 Javascript
js使用for循环及if语句判断多个一样的name
Sep 09 Javascript
Jquery实现鼠标移动放大图片功能实例
Mar 25 Javascript
js实现超简单的展开、折叠目录代码
Aug 28 Javascript
Javascript点击其他任意地方隐藏关闭DIV实例
Jun 21 Javascript
vue组件编写之todolist组件实例详解
Jan 22 Javascript
JavaScript实现图片放大镜效果
Jun 27 Javascript
vue组件内部引入外部js文件的方法
Jan 18 Javascript
详解微信小程序「渲染层网络层错误」的解决方法
Jan 06 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
《星际争霸2》终章已出 RTS时代宣告终结
2017/02/07 星际争霸
PHPShop存在多个安全漏洞
2006/10/09 PHP
PHP 错误之引号中使用变量
2009/05/04 PHP
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
2011/07/03 PHP
深入HTTP响应状态码速查表的详解
2013/06/07 PHP
PHP的foreach中使用引用时需要注意的一个问题和解决方法
2014/05/29 PHP
Zend Framework处理Json数据方法详解
2016/12/09 PHP
Tab页界面 用jQuery及Ajax技术实现(php后台)
2011/10/12 Javascript
jQuery表格排序组件-tablesorter使用示例
2014/05/26 Javascript
JS简单获取客户端IP地址的方法【调用搜狐接口】
2016/09/05 Javascript
Angular JS数据的双向绑定详解及实例
2016/12/31 Javascript
jQuery插件HighCharts绘制2D半圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
javascript兼容性(实例讲解)
2017/08/15 Javascript
JS实现动态生成html table表格的方法分析
2018/07/11 Javascript
vue 中使用 watch 出现了如下的报错的原因分析
2019/05/21 Javascript
JS如何在数组指定位置插入元素
2020/03/10 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
2020/05/06 Javascript
vue实现路由懒加载的3种方法示例
2020/09/01 Javascript
跟老齐学Python之一个免费的实验室
2014/09/14 Python
浅谈python可视化包Bokeh
2018/02/07 Python
Python绘制KS曲线的实现方法
2018/08/13 Python
如何在python字符串中输入纯粹的{}
2018/08/22 Python
Python中is和==的区别详解
2018/11/15 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
python实现电子书翻页小程序
2019/07/23 Python
Python脚本导出为exe程序的方法
2020/03/25 Python
Python虚拟环境的创建和使用详解
2020/09/07 Python
2021年值得向Python开发者推荐的VS Code扩展插件
2021/01/25 Python
企业管理专业个人求职信范文
2013/09/24 职场文书
酒店员工检讨书
2014/02/18 职场文书
团拜会策划方案
2014/06/07 职场文书
拆迁委托协议书
2014/09/15 职场文书
涉外离婚协议书怎么写
2014/11/20 职场文书
2014幼儿教师个人工作总结
2014/12/03 职场文书
Mysql 性能监控及调优
2021/04/06 MySQL
Python进程间的通信之语法学习
2022/04/11 Python