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 相关文章推荐
jquery选择器(常用选择器说明)
Sep 28 Javascript
给ListBox添加双击事件示例代码
Dec 02 Javascript
js function定义函数的几种不错方法
Feb 27 Javascript
使用jquery清空、复位整个输入域
Apr 02 Javascript
jQuery将表单序列化成一个Object对象的实例
Nov 29 Javascript
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
Nov 14 jQuery
原生JS写Ajax的请求函数功能
Dec 22 Javascript
js数组去重的方法总结
Jan 18 Javascript
通过JS运行机制的角度说说作用域
Mar 12 Javascript
Vue 使用formData方式向后台发送数据的实现
Apr 14 Javascript
基于原生js实现九宫格算法代码实例
Jul 03 Javascript
纯js+css实现在线时钟
Aug 18 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 中执行系统外部命令
2006/10/09 PHP
php自动加载的两种实现方法
2010/06/21 PHP
php学习之 数组声明
2011/06/09 PHP
php中smarty区域循环的方法
2015/06/11 PHP
javascript 在firebug调试时用console.log的方法
2012/05/10 Javascript
浅谈JavaScript的Polymer框架中的事件绑定
2015/07/29 Javascript
JavaScript模拟鼠标右键菜单效果
2020/12/08 Javascript
angular中的http拦截器Interceptors的实现
2017/02/21 Javascript
React + webpack 环境配置的方法步骤
2017/09/07 Javascript
jquery应用实例分享_实现手风琴特效
2018/02/01 jQuery
用Node编写RESTful API接口的示例代码
2018/07/04 Javascript
JavaScript fetch接口案例解析
2018/08/30 Javascript
JavaScript ES 模块的使用
2020/11/12 Javascript
[07:12]2014DOTA2西雅图国际邀请赛 黑马Liquid专题采访
2014/07/12 DOTA
[58:09]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第三场 6.2
2018/06/03 DOTA
python3.3教程之模拟百度登陆代码分享
2014/01/16 Python
python的类方法和静态方法
2014/12/13 Python
Python3生成手写体数字方法
2018/01/30 Python
Django项目使用CircleCI的方法示例
2019/07/14 Python
python dict乱码如何解决
2020/06/07 Python
保加利亚手表、香水、化妆品和珠宝购物网站:Brasty.bg
2020/04/22 全球购物
中英双版中文教师求职信
2013/10/27 职场文书
服装厂厂长岗位职责
2013/12/27 职场文书
即兴演讲稿
2014/01/04 职场文书
模具设计与制造专业推荐信
2014/02/16 职场文书
烹饪自我鉴定
2014/03/01 职场文书
高中生评语大全
2014/04/25 职场文书
安全生产月演讲稿
2014/05/09 职场文书
买房协议书范本
2014/10/23 职场文书
2015元旦标语横幅
2014/12/09 职场文书
2016年员工政治思想表现评语
2015/12/02 职场文书
Node.js实现断点续传
2021/06/23 Javascript
Python爬虫入门案例之爬取二手房源数据
2021/10/16 Python
Python可视化学习之seaborn调色盘
2022/02/24 Python
《巫师》是美食游戏?CDPR10月将推出《巫师》官方食谱
2022/04/03 其他游戏
Vue3实现简易音乐播放器组件
2022/08/14 Vue.js