AngularJS改变元素显示状态


Posted in Javascript onApril 20, 2017

前言

本文描述使用AngularJS提供的ng-show和ng-hide指令实现自动监听某布尔型变量来改变元素显示状态。

控制html元素显示和隐藏有n种方法:html的hidden、css的display、jQuery的hide()和show()、bootstrap的.hide。今天的重点不是显示和隐藏,而是监听某个布尔变量值,自动改变元素显示和隐藏状态。监听函数、if判断、选择dom、设置dom,5行代码搞不定吧,而且毫无技术含量。

实例1

<body> 
<div ng-controller="VisibleController"> 
 <p ng-show="visible">字符串1</p> 
 <p ng-hide="visible">字符串2</p> 
 <button ng-click="toggle()">切换</button> 
</div> 
 
<script src="../lib/angularjs/1.2.26/angular.min.js"></script> 
<script> 
 function VisibleController($scope) { 
 $scope.visible = false; 
 $scope.toggle = function () { 
  $scope.visible = !$scope.visible; 
 } 
 } 
</script> 
</body>

两个指令很简单,只是ng-show在true时显示,false时隐藏,而ng-hide效果相反。

对于菜单、上下文敏感的工具以及很多其他情况来说,显示和隐藏元素是一项核心的功能。与Angualr中其他功能一样,Angular是通过修改数据模型的方式来驱动UI刷新,然后通过指令把变更反应到UI上。

ng-show和ng-hide这两条指令的功能是等价的,但是运行效果正好相反,我们都可以根据所传递的表达式来显示或隐藏元素。也就是说,ng-show在表达式为true时将会显示元素,为false时将会隐藏元素;而ng-hide则恰好相反。

工作原理

这两条指令的工作原理是:根据实际情况把元素的样式设置为display:block来显示元素;设置为display:none来隐藏元素。

实例2

<body ng-controller='ShowController'> 
<button ng-click="toggleMenu()">Toggle Menu</button> 
<ul ng-show='menuState.show'> 
<li>Stun</li> 
<li>Disintegrate</li> 
<li>Erase from history</li> 
</ul> 
 
<script src="lib/angular/angular.js"></script> 
<script> 
var myApp=angular.module('myApp',[]) myApp.controller('ShowController',function($scope)  {$scope.menuState={show: false},$scope.toggleMenu=function() {$scope.menuState.show=!$scope.menuState.show;}}); 
</script> 
</body>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
Gird事件机制初级读本
Mar 10 Javascript
一个简单的JavaScript 日期计算算法
Sep 11 Javascript
js类的静态属性和实例属性的理解
Oct 01 Javascript
用jquery实现的模拟QQ邮箱里的收件人选取及其他效果(一)
Jan 06 Javascript
JavaScript  event对象整理及详细介绍
Oct 10 Javascript
js实现简单的二级联动效果
Mar 09 Javascript
knockoutjs模板实现树形结构列表
Jul 31 Javascript
React学习笔记之列表渲染示例详解
Aug 22 Javascript
在vue项目中,使用axios跨域处理
Mar 07 Javascript
基于React+Redux的SSR实现方法
Jul 03 Javascript
JS监听滚动和id自动定位滚动
Dec 18 Javascript
Vue使用虚拟dom进行渲染view的方法
Dec 26 Javascript
bootstrap 设置checkbox部分选中效果
Apr 20 #Javascript
详解Vue2.0之去掉组件click事件的native修饰
Apr 20 #Javascript
AngularJS实现根据不同条件显示不同控件
Apr 20 #Javascript
详解Vuejs2.0之异步跨域请求
Apr 20 #Javascript
bootstrap3 dialog 更强大、更灵活的模态框
Apr 20 #Javascript
angularjs过滤器--filter与ng-repeat配合有奇效
Apr 20 #Javascript
JS简单判断字符在另一个字符串中出现次数的2种常用方法
Apr 20 #Javascript
You might like
根德YB400的电路分析
2021/03/02 无线电
php 正确解码javascript中通过escape编码后的字符
2010/01/28 PHP
PHP XML数据解析代码
2010/05/26 PHP
php防止sql注入示例分析和几种常见攻击正则表达式
2014/01/12 PHP
Zend Framework教程之Application和Bootstrap用法详解
2016/03/10 PHP
PHP项目多语言配置平台实现过程解析
2020/05/18 PHP
JavaScript 对象、函数和继承
2009/07/07 Javascript
javascript同页面多次调用弹出层具体实例代码
2013/08/16 Javascript
jquery实现下拉菜单的二级联动利用json对象从DB取值显示联动
2014/03/27 Javascript
用javascript对一个json数组深度赋值示例
2014/07/27 Javascript
原生Ajax 和jQuery Ajax的区别示例分析
2014/12/17 Javascript
JQuery中clone方法复制节点
2015/05/18 Javascript
jQuery中ztree 点击文本框弹出下拉框的实例代码
2017/02/05 Javascript
jQuery实现下拉菜单动态添加数据点击滑出收起其他功能
2018/06/14 jQuery
TypeScript 运行时类型检查补充工具
2020/09/28 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
[05:46]2018完美盛典-《同梦共竞》
2018/12/17 DOTA
python使用arp欺骗伪造网关的方法
2015/04/24 Python
Python的Twisted框架中使用Deferred对象来管理回调函数
2016/05/25 Python
python使用os.listdir和os.walk获得文件的路径的方法
2017/12/16 Python
python读取word文档,插入mysql数据库的示例代码
2018/11/07 Python
Python一句代码实现找出所有水仙花数的方法
2018/11/13 Python
PyTorch的深度学习入门之PyTorch安装和配置
2019/06/27 Python
Python 3.6 中使用pdfminer解析pdf文件的实现
2019/09/25 Python
python super函数使用方法详解
2020/02/14 Python
django正续或者倒序查库实例
2020/05/19 Python
完美解决Django2.0中models下的ForeignKey()问题
2020/05/19 Python
Numpy中ndim、shape、dtype、astype的用法详解
2020/06/14 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
2020/06/24 Python
解决python3.6用cx_Oracle库连接Oracle的问题
2020/12/07 Python
css3动画过渡实现鼠标跟随导航效果
2018/02/08 HTML / CSS
德国百年厨具品牌WMF美国站:WMF美国
2016/09/12 全球购物
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
县长“四风”对照检查材料思想汇报
2014/10/05 职场文书
毕业论文致谢格式模板
2015/05/14 职场文书
《日月潭》教学反思
2016/02/20 职场文书