举例详解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 相关文章推荐
多浏览器支持的右下角浮动窗口
Apr 01 Javascript
safari,opera嵌入iframe页面cookie读取问题解决方法
Jun 23 Javascript
jquery预加载图片的方法
May 27 Javascript
JavaScript获得指定对象大小的方法
Jul 01 Javascript
jQuery实现响应鼠标滚动的动感菜单效果
Sep 21 Javascript
AngularJS 2.0新特性有哪些
Feb 18 Javascript
判断js的Array和Object的实现方法
Aug 29 Javascript
Vue computed计算属性的使用方法
Jul 14 Javascript
JS判断数组那点事
Oct 10 Javascript
讲解vue-router之什么是动态路由
May 28 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
Nov 13 Javascript
JS实现吸顶特效
Jan 08 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实现智能文件类型检测的实现代码
2011/08/02 PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
2013/09/23 PHP
thinkphp常见路径用法分析
2014/12/02 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
2019/05/09 PHP
Array.prototype.slice.apply的使用方法
2010/03/17 Javascript
StringTemplate遇见jQuery冲突的解决方法
2011/09/22 Javascript
javascript (用setTimeout而非setInterval)
2011/12/28 Javascript
js+css实现增加表单可用性之提示文字
2013/06/03 Javascript
Js base64 加密解密介绍
2013/10/11 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
2016/01/25 Javascript
JS实现队列与堆栈的方法
2016/04/21 Javascript
微信小程序 购物车简单实例
2016/10/24 Javascript
javascript基于原型链的继承及call和apply函数用法分析
2016/12/15 Javascript
浅谈JavaScript的计时器对象
2016/12/26 Javascript
JavaScript实现简单的双色球(实例讲解)
2017/07/31 Javascript
JSON对象转化为字符串详解
2017/08/11 Javascript
详解javascript appendChild()的完整功能
2018/08/18 Javascript
JavaScript使用递归和循环实现阶乘的实例代码
2018/08/28 Javascript
js中null与空字符串&quot;&quot;的区别讲解
2019/01/17 Javascript
JS实现电话号码的字母组合算法示例
2019/02/26 Javascript
vue spa应用中的路由缓存问题与解决方案
2019/05/31 Javascript
vue+eslint+vscode配置教程
2019/08/09 Javascript
Vue 权限控制的两种方法(路由验证)
2019/08/16 Javascript
详解mpvue开发微信小程序基础知识
2019/09/23 Javascript
js实现查询商品案例
2020/07/22 Javascript
ant-design-vue中tree增删改的操作方法
2020/11/03 Javascript
Python中使用装饰器和元编程实现结构体类实例
2015/01/28 Python
解决Mac下首次安装pycharm无project interpreter的问题
2018/10/29 Python
Python3 tkinter 实现文件读取及保存功能
2019/09/12 Python
CSS3教程(1):什么是CSS3
2009/04/02 HTML / CSS
新加坡领先的时尚生活方式零售品牌:CHARLES & KEITH
2018/01/16 全球购物
美国渔具店:FishUSA
2019/08/07 全球购物
我的动漫时代的创业计划书范文
2014/01/27 职场文书
安全环保标语
2014/06/09 职场文书
2015年度物流工作总结
2015/04/30 职场文书
《王者天下》第4季首话新剧照 4月9日正式开播
2022/04/07 日漫