举例详解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 相关文章推荐
Javascript 学习书 推荐
Jun 13 Javascript
js获取html文件的思路及示例
Sep 17 Javascript
回车直接实现点击某按钮的效果即触发单击事件
Feb 27 Javascript
javascript中Object使用详解
Jan 26 Javascript
拥Bootstrap入怀——导航栏篇
May 30 Javascript
url中的特殊符号有什么含义(推荐)
Jun 17 Javascript
浅谈js多维数组和hash数组定义和使用
Jul 27 Javascript
浅谈Angular的$q, defer, promise
Dec 20 Javascript
vue-cli入门之项目结构分析
Apr 20 Javascript
js上传图片预览的实现方法
May 09 Javascript
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
Aug 31 Javascript
layui自定义插件citySelect实现省市区三级联动选择
Jul 26 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
php 数组的创建、调用和更新实现代码
2009/03/09 PHP
Php获取金书网的书名的实现代码
2010/06/11 PHP
PHP实现通用alert函数的方法
2015/03/11 PHP
php使用ffmpeg获取视频信息并截图的实现方法
2016/05/03 PHP
jQuery数组处理代码详解(含实例演示)
2012/02/03 Javascript
js 获取时间间隔实现代码
2014/05/12 Javascript
jquery attr方法获取input的checked属性问题
2014/05/26 Javascript
使用 TypeScript 重新编写的 JavaScript 坦克大战游戏代码
2015/04/07 Javascript
实例讲解jquery中mouseleave和mouseout的区别
2016/02/17 Javascript
浅谈JS之tagNaem和nodeName
2016/09/13 Javascript
纯JS焦点图特效实例(可一个页面多用)
2016/12/07 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
2017/01/12 Javascript
vue指令以及dom操作详解
2017/03/04 Javascript
ReactNative 之FlatList使用及踩坑封装总结
2017/11/29 Javascript
使用vue中的v-for遍历二维数组的方法
2018/03/07 Javascript
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码
2018/05/21 Javascript
vue 本地环境跨域请求proxyTable的方法
2018/09/19 Javascript
js限制输入框只能输入数字(onkeyup触发)
2018/09/28 Javascript
vue实现微信二次分享以及自定义分享的示例
2019/03/20 Javascript
微信小程序实现单列下拉菜单效果
2019/04/25 Javascript
vue中监听返回键问题
2019/08/28 Javascript
[01:01:42]Secret vs Optic Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
Python实现带百分比的进度条
2016/06/28 Python
Python优先队列实现方法示例
2017/09/21 Python
python计算日期之间的放假日期
2018/06/05 Python
Python实现的读取/更改/写入xml文件操作示例
2018/08/30 Python
python os.fork() 循环输出方法
2019/08/08 Python
Python如何实现在字符串里嵌入双引号或者单引号
2020/03/02 Python
Python开发入门——迭代的基本使用
2020/09/03 Python
HTML5之web workers_动力节点Java学院整理
2017/07/17 HTML / CSS
HTML5页面中尝试调起APP功能
2017/09/12 HTML / CSS
美国购买舞会礼服网站:Couture Candy
2019/12/29 全球购物
货车司机岗位职责
2014/03/18 职场文书
2015年幼儿园教研活动总结
2015/03/25 职场文书
导游词之南京汤山温泉
2019/11/26 职场文书
关于JavaScript轮播图的实现
2021/11/20 Javascript