举例详解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中的eval()函数使用介绍
Dec 31 Javascript
AngularJS学习笔记之基本指令(init、repeat)
Jun 16 Javascript
js立即执行函数: (function ( ){})( ) 与 (function ( ){}( )) 有什么区别?
Nov 18 Javascript
js实现简单计算器
Nov 22 Javascript
浅谈Javascript数组(推荐)
May 17 Javascript
AngularJs基本特性解析(一)
Jul 21 Javascript
JS中静态页面实现微信分享功能
Feb 06 Javascript
vue下history模式刷新后404错误解决方法
Aug 18 Javascript
vue.js自定义组件directives的实例代码
Nov 09 Javascript
js计算两个时间差 天 时 分 秒 毫秒的代码
May 21 Javascript
利用js-cookie实现前端设置缓存数据定时失效
Jun 18 Javascript
Element-ui Layout布局(Row和Col组件)的实现
Dec 06 Vue.js
使用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验证手机号码(支持归属地查询及编码为UTF8)
2013/02/01 PHP
php浏览历史记录的方法
2015/03/10 PHP
php发送邮件的问题详解
2015/06/22 PHP
深入解析PHP的Yii框架中的缓存功能
2016/03/29 PHP
PHP控制前台弹出对话框的实现方法
2016/08/21 PHP
通过Jscript中@cc_on 语句识别IE浏览器及版本的代码
2011/05/07 Javascript
js sort 二维数组排序的用法小结
2014/01/24 Javascript
node.js中的http.request方法使用说明
2014/12/14 Javascript
JavaScript插件化开发教程(五)
2015/02/01 Javascript
JavaScript实现的多种鼠标拖放效果
2015/11/03 Javascript
js实现页面跳转的几种方法小结
2016/05/16 Javascript
不使用script导入js文件的几种方法
2016/10/27 Javascript
最常见的左侧分类菜单栏jQuery实现代码
2016/11/28 Javascript
浅谈对Angular中的生命周期钩子的理解
2017/07/31 Javascript
Vue filter介绍及其使用详解
2017/10/21 Javascript
jQuery实现checkbox的简单操作
2017/11/18 jQuery
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
解决layui 复选框等内置控件不显示的问题
2018/08/14 Javascript
在vue和element-ui的table中实现分页复选功能
2019/12/04 Javascript
微信小程序中插入激励视频广告并获取收益(实例代码)
2019/12/06 Javascript
使用JS实现动态时钟
2020/03/12 Javascript
JavaScript直接调用函数与call调用的区别实例分析
2020/05/22 Javascript
浅谈vue中使用编辑器vue-quill-editor踩过的坑
2020/08/03 Javascript
Django错误:TypeError at / 'bool' object is not callable解决
2019/08/16 Python
Win系统PyQt5安装和使用教程
2019/12/25 Python
django 连接数据库出现1045错误的解决方式
2020/05/14 Python
pycharm 实现光标快速移动到括号外或行尾的操作
2021/02/05 Python
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
纽约著名的服装辅料来源:M&J Trimming
2017/07/26 全球购物
汽车技术服务英文求职信范文
2014/01/02 职场文书
大学生的创业计划书就该这么写
2014/01/30 职场文书
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
幼儿园六一活动总结
2014/08/27 职场文书
2014年留守儿童工作总结
2014/12/10 职场文书
Python time库的时间时钟处理
2021/05/02 Python
苹果的回收机器人可以通过拆解iPhone获取大量的金和铜并外公布了环境保护最新进展
2022/04/21 数码科技