举例详解AngularJS中ngShow和ngHide的使用方法


Posted in Javascript onJune 19, 2015

今天我们来看看怎样使用Angular的ngShow 和ngHide   指令来完成它们听起来应该完成的,显示和隐藏!
它们应该做的事

ngShow 和ngHide 允许我们显示或隐藏不同的元素。这有助于创建Angular应用时因为我们的单页程序会有许多的移动部件随着应用状态的改变而来来去去。

这些指令的最伟大的部分就是我们不必使用CSS或者JS来操作显示还是隐藏。这些都是由老练的Angular来完成。

用法

想使用ngShow 或ngHide, 只需将指令添加到你想要显示或者隐藏的元素上即可。
 

<!-- FOR BOOLEAN VALUES =============================== -->
<!-- for true values -->
<div ng-show="hello">this is a welcome message</div>  
 
 <!-- can also show if a value is false --> 
<div ng-show="!hello">this is a goodbye message</div>  
 
<!-- FOR EXPRESSIONS =============================== -->
<!-- show if the appState variable is a string of goodbye -->
<div ng-show="appState == 'goodbye'">this is a goodbye message</div> 
 
<!-- FOR FUNCTIONS =============================== -->
<!-- use a function defined in your controller to evaluate if true or false -->
<div ng-hide="checkSomething()"></div>

一旦我们设置了我们标记,我们可以多种方式设置hello或者goodbye。你可以将它设置到你的Angular控制器里并且让你的div在应用加载的时候显示或隐藏。

上面的这些都可以用于ng-show或者ng-hide。如果值或表达式或函数返回true,则会隐藏一些东西。

用作布尔值

我们将创建使用ng-click的链接,并切换goCats的值为true或false。

<a href ng-click="goCats = !goCats">Toggle Cats</a>

然后我们可以使用ng-show来显示或隐藏分类图像。

<img ng-src="http://i.imgur.com/vkW3Lhe.jpg" ng-show="goCats">

ng-src 我们使用ng-src来调用图片,这样的话Angular将在实例化及检查图像时确认是否将其隐藏。如果我们不这样的话,图片会在站点加载时弹出来,直到Angular意识到应该将其隐藏。

判断表达式

在这里我们来判断一个从输入框传来的字符串,我们把ng-mode绑定在一个输入框的里面并命名为aminal变量,并根据这个变量的内容来显示不同的图片。

下面我们会把我们的变量名焦作aminal。
 

<input type="text" ng-model="aminal">

然后我们会使用ng-show来对字符串进行判断。
 

<img ng-src="http://i.imgur.com/vkW3Lhe.jpg" ng-show="aminal == 'cat'">

使用方法

我们会做一个简单的检查来判断输入的是奇数还是偶数。 我们会创建一个方法在我们的AngularJS文件中:
 

// set the default value of our number
$scope.myNumber = 0;
   
// function to evaluate if a number is even
$scope.isEven = function(value) {
 
if (value % 2 == 0)
 return true;
else 
 return false;
 
};

方法创建完成之后, 我们接下来要做的就是通过ng-show或者ng-hide来使用它,并传入我们的数字。通过方法传数字这种方法,可以保持Angular控制整洁和可测试。
 

<!-- show if our function evaluates to false -->
<div ng-show="isEven(myNumber)">
  <h2>The number is even.</h2>
</div>
  
<!-- show if our function evaluates to false -->
<div ng-show="!isEven(myNumber)">
  <h2>The number is odd.</h2>
</div>

 
结论

有了这两个方向的指引,我们的应用会有很大的改观. 而这些只是基于 布尔值, 表达式, 以及 函数,实现的元素显示和隐藏功能 但这三种模式将能应用到更多的场景.

Javascript 相关文章推荐
Prototype 工具函数 学习
Jul 23 Javascript
Js控制弹窗实现在任意分辨率下居中显示
Aug 01 Javascript
jquery动态调整div大小使其宽度始终为浏览器宽度
Jun 06 Javascript
jQuery插件jPaginate实现无刷新分页
May 04 Javascript
javascript实现标签切换代码示例
May 22 Javascript
JavaScript跨域调用基于JSON的RESTful API
Jul 09 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
Jul 22 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
Dec 12 Javascript
微信小程序网络请求wx.request详解及实例
May 18 Javascript
JS逻辑运算符短路操作实例分析
Jul 09 Javascript
浅析js实现网页截图的两种方式
Nov 01 Javascript
Vue使用screenfull实现全屏效果
Sep 17 Javascript
使用AngularJS和PHP的Laravel实现单页评论的方法
Jun 19 #Javascript
测试IE浏览器对JavaScript的AngularJS的兼容性
Jun 19 #Javascript
使用ngView配合AngularJS应用实现动画效果的方法
Jun 19 #Javascript
Backbone.js的Hello World程序实例
Jun 19 #Javascript
使用AngularJS处理单选框和复选框的简单方法
Jun 19 #Javascript
详细分析使用AngularJS编程中提交表单的方式
Jun 19 #Javascript
让JavaScript中setTimeout支持链式操作的方法
Jun 19 #Javascript
You might like
Terran建筑一览
2020/03/14 星际争霸
SSI指令
2006/11/25 PHP
PHP中__get()和__set()的用法实例详解
2013/06/04 PHP
PHP接收json 并将接收数据插入数据库的实现代码
2015/12/01 PHP
PHP简单获取及判断提交来源的方法
2016/04/22 PHP
javascript 学习之旅 (1)
2009/02/05 Javascript
javascript 密码强弱度检测万能插件
2009/02/25 Javascript
document.compatMode介绍
2009/05/21 Javascript
javascript URL编码和解码使用说明
2010/04/12 Javascript
分享一个asp.net pager分页控件
2012/01/04 Javascript
使用jquery 简单实现下拉菜单
2015/01/14 Javascript
ES6概念 ymbol.for()方法
2016/12/25 Javascript
基于vue框架手写一个notify插件实现通知功能的方法
2019/03/31 Javascript
Angular实现svg和png图片下载实现
2019/05/05 Javascript
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
2019/09/27 Javascript
vue3修改link标签默认icon无效问题详解
2019/10/09 Javascript
js点击事件的执行过程实例分析【冒泡与捕获】
2020/04/11 Javascript
python继承和抽象类的实现方法
2015/01/14 Python
win与linux系统中python requests 安装
2016/12/04 Python
wxPython的安装图文教程(Windows)
2017/12/28 Python
Python3网络爬虫开发实战之极验滑动验证码的识别
2019/08/02 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
2019/11/20 Python
Python bisect模块原理及常见实例
2020/06/17 Python
python获取linux系统信息的三种方法
2020/10/14 Python
5个你不知道的HTML5的接口介绍
2013/08/07 HTML / CSS
大学生旅游业创业计划书
2014/01/29 职场文书
战略合作意向书范本
2014/04/01 职场文书
运动会宣传口号
2014/06/09 职场文书
高职教师先进事迹材料
2014/08/24 职场文书
创先争优宣传标语
2014/10/08 职场文书
2016全国“质量月”活动标语口号
2015/12/26 职场文书
七年级作文之关于奶奶
2019/10/29 职场文书
python 实现mysql自动增删分区的方法
2021/04/01 Python
Mysql服务添加 iptables防火墙策略的方案
2021/04/29 MySQL
只需要这一行代码就能让python计算速度提高十倍
2021/05/24 Python
MySQL基于索引的压力测试的实现
2021/11/07 MySQL