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类中的公有变量和私有变量
Jul 24 Javascript
跨浏览器开发经验总结(三)   警惕“IE依赖综合症”
May 13 Javascript
利用javascript打开模态对话框(示例代码)
Jan 11 Javascript
javascript去除字符串中所有标点符号和提取纯文本的正则
Jun 07 Javascript
Node.js 服务器端应用开发框架 -- Hapi.js
Jul 29 Javascript
Bootstrap3制作搜索框样式的方法
Jul 11 Javascript
BootStrap Fileinput初始化时的一些参数
Dec 30 Javascript
Canvas 绘制粒子动画背景
Feb 15 Javascript
XMLHttpRequest对象_Ajax异步请求重点(推荐)
Sep 28 Javascript
vue+webpack实现异步组件加载的方法
Feb 03 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
Mar 26 Javascript
微信小程序实现吸顶效果
Jan 08 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针对cookie操作的队列操作类实例
2014/12/10 PHP
PHP简单验证码功能机制实例详解
2019/03/27 PHP
JavaScript 学习笔记(十一)
2010/01/19 Javascript
javascript qq右下角滑出窗口 sheyMsg
2010/03/21 Javascript
js 纯数字不重复排列的另类方法
2010/07/17 Javascript
javascript实现信息增删改查的方法
2015/07/25 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
微信小程序自定义tabBar组件开发详解
2020/09/24 Javascript
vue弹出框组件封装实例代码
2019/10/31 Javascript
微信小程序学习总结(五)常见问题实例小结
2020/06/04 Javascript
浅谈在vue-cli3项目中解决动态引入图片img404的问题
2020/08/04 Javascript
JS将指定的某个字符全部转换为其他字符实例代码
2020/10/13 Javascript
[00:36]TI7不朽珍藏III——斯温不朽展示
2017/07/15 DOTA
python多线程抓取天涯帖子内容示例
2014/04/03 Python
python实现的文件夹清理程序分享
2014/11/22 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
2017/11/14 Python
python实现自动登录
2018/09/17 Python
解决pycharm工程启动卡住没反应的问题
2019/01/19 Python
Python 实现王者荣耀中的敏感词过滤示例
2019/01/21 Python
python3的数据类型及数据类型转换实例详解
2019/08/20 Python
python中web框架的自定义创建
2019/09/08 Python
把vgg-face.mat权重迁移到pytorch模型示例
2019/12/27 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
2020/06/18 Python
Python利用Faiss库实现ANN近邻搜索的方法详解
2020/08/03 Python
教你一分钟在win10终端成功安装Pytorch的方法步骤
2021/01/28 Python
Canvas高级路径操作之拖拽对象的实现
2019/08/05 HTML / CSS
意大利奢侈品牌在线精品店:Jole.it
2020/11/23 全球购物
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
2014/12/30 面试题
运动会获奖感言
2014/02/11 职场文书
村长贪污检举信
2014/04/04 职场文书
代理协议书范本
2014/04/22 职场文书
法院授权委托书范文
2014/08/02 职场文书
基层干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
MySQL 重命名表的操作方法及注意事项
2021/05/21 MySQL
Python编写nmap扫描工具
2021/07/21 Python