Demo:http://webenh.chinacloudsites.cn/Default/Demo2

在平时的项目开发中,应该会经常遇到上图所示的需求,就是在一个页面中有多个标签,被选中的标签颜色会高亮显示,切换不同标签显示相应的不同内容。如果内容代码过多则写在同一个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的用法大概就说完了,我觉得在项目的开发中还是比较有用的,分开管理逻辑和页面都会比较清晰,也会在一定程度上提高开发效率。

效果为:

转载于:https://www.cnblogs.com/webenh/p/6021591.html

原 ng-include用法分析以及多标签页面的简单实现方式相关推荐

  1. java中include标签的用法_原 ng-include用法分析以及多标签页面的简单实现方式

    在平时的项目开发中,应该会经常遇到上图所示的需求,就是在一个页面中有多个标签,被选中的标签颜色会高亮显示,切换不同标签显示相应的不同内容.如果内容代码过多则写在同一个html文件就会显得特别乱,所以这 ...

  2. thinkphp当前php路径,分析thinkphp常见路径用法分析

    分析thinkphp常见路径用法分析 文章主要介绍了thinkphp常见路径用法,实例分析了__PUBLIC__.__ROOT__.__APP__.__URL__.__ACTION__及__SELF_ ...

  3. io_uring 用法分析 II :io_uring 原理和系统调用初步介绍

    这个为了方便,之后还要总结一下这个全部的用法摘要,方便查阅.所以分为 3 篇内容(其实前面还有一篇讲异步 IO 的也算吧io_uring 用法分析 I :异步 IO ,Windows IOCP 接口与 ...

  4. 微信小程序的组件用法与传统HTML5标签的区别

    小程序与传统HTML5的区别 小程序刚开放公测,互联网圈内开始了各种解读和猜测.其中有观点认为小程序和HTML5有着紧密关联,甚至小程序就是基于HTML5开发. 经过仔细研究文档和代码开发,从视图层的 ...

  5. include 用法

    一.include 用法 titlebar.xml: <?xml version="1.0" encoding="utf-8"?> <Line ...

  6. python装饰器原理-Python装饰器原理与用法分析

    这篇文章主要介绍了Python装饰器原理与用法,结合实例形式分析了Python装饰器的概念.原理.使用方法及相关操作注意事项,需要的朋友可以参考下 本文实例讲述了Python装饰器原理与用法.分享给大 ...

  7. 浅谈Spring框架注解的用法分析

    1.@Component是Spring定义的一个通用注解,可以注解任何bean. 2.@Scope定义bean的作用域,其默认作用域是"singleton",除此之外还有proto ...

  8. python在删除对象时会自动调用析构函数_Python面向对象程序设计构造函数和析构函数用法分析...

    本文实例讲述了Python面向对象程序设计构造函数和析构函数用法.分享给大家供大家参考,具体如下: 构造函数和析构函数 1.构造方法的使用 很多类都倾向于将对象创建为有初始化状态.因此类可以定义一个名 ...

  9. 数据绑定以及Container.DataItem几种方式与用法分析 收藏

    数据绑定以及Container.DataItem几种方式与用法分析 收藏 灵活的运用数据绑定操作         绑定到简单属性:<%#UserName%>         绑定到集合:& ...

最新文章

  1. 【win PE】磁盘分区大小的重新调整 (再也不用担心C盘过小了)
  2. POJ 3265 DP
  3. SAP UI5加载时的library-preload.json文件
  4. C#多线程编程系列(五)- 使用任务并行库
  5. python 函数 类 模块
  6. android 本地日历,Android日历提供商:如何删除自己的本地日历?
  7. 设计模式 (五) 原型模式
  8. mysql 服务器配置信息和运行状态的查看(show variables like)
  9. 哔哩哔哩助手:bilibili综合辅助扩展Chrome插件
  10. 原创Maya mel系列插件推荐
  11. 三极管输出和输入特性曲线人类语言(共射为例)
  12. 局域网服务器ie浏览器文件传输慢,局域网内打开IE浏览器很久才显示主页,慢的原因及解决方法...
  13. 高通平台msm8916修改开机logo 高通平台修改LK(bootloader)开机logo
  14. 装甲逆袭-获取坦克界面
  15. 省市区镇(可以选四级)联动点击自动展开下一级
  16. BGP线路是什么意思?BGP三线的优点是什么?
  17. 简单实现直播手绘礼物
  18. Linux logo和屏幕光标-Linux全屏显示LOGO时起始坐标处有闪烁光标的问题;
  19. Intel卖电脑能不能像卖手机?(图)
  20. 苏幕遮——青海湖游记有感

热门文章

  1. 远程桌面的分辨率最大不会超过本机真实物理机的分辨率
  2. ORACLE学习笔记--性能优化2
  3. 2018.12.5 区块链论文翻译
  4. 前端移动开发之安卓下存在的问题
  5. C#函数式编程之可选值
  6. 网站禁止复制怎样操作
  7. How good software makes us stupid?
  8. linux fork函数浅析
  9. 点击屏幕上EditText区域以外的任何地方隐藏键盘的解决方法
  10. 用友服务器整体迁移--数据库附加