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 相关文章推荐
用js实现上传图片前的预览(TX的面试题)
Aug 14 Javascript
javascript重写alert方法的实例代码
Mar 29 Javascript
利用js实现前台动态添加文本框,后台获取文本框内容(示例代码)
Nov 25 Javascript
使用原生js实现页面蒙灰(mask)效果示例代码
Jun 20 Javascript
extjs 时间范围选择自动判断的实现代码
Jun 24 Javascript
prototype框架中美元符号$用法分析
Jan 22 Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
Jul 12 Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
Apr 20 jQuery
angularjs select 赋值 ng-options配置方法
Feb 28 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
Sep 21 Javascript
koa+jwt实现token验证与刷新功能
May 30 Javascript
js实现鼠标滑动到某个div禁止滚动
Sep 17 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
php设计模式之简单工厂模式详解
2014/09/04 PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
2015/12/22 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
2019/09/30 PHP
JavaScript 判断日期格式是否正确的实现代码
2011/07/04 Javascript
处理及遍历XML文档DOM元素属性及方法整理
2013/08/23 Javascript
php显示当前文件所在的文件以及文件夹所有文件以树形展开
2013/12/13 Javascript
判断日期是否能跨月查询的js代码
2014/07/25 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
深入理解JavaScript系列(48):对象创建模式(下篇)
2015/03/04 Javascript
javascript加减乘除的简单实例
2016/07/12 Javascript
关于JS变量和作用域详解
2016/07/28 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
js实现自动轮换选项卡
2017/01/13 Javascript
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
详解小程序输入框闪烁及重影BUG解决方案
2018/08/31 Javascript
ES6 async、await的基本使用方法示例
2020/06/06 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
2020/09/22 Javascript
[03:22]DAC最前线(第二期)—DOTA2亚洲邀请赛主赛场周边及线路探访
2015/01/24 DOTA
python3中dict(字典)的使用方法示例
2017/03/22 Python
Python工程师面试必备25条知识点
2018/01/17 Python
python实现顺序表的简单代码
2018/09/28 Python
Python基本socket通信控制操作示例
2019/01/30 Python
详解python实现交叉验证法与留出法
2019/07/11 Python
python实现一次性封装多条sql语句(begin end)
2020/06/06 Python
python判断变量是否为列表的方法
2020/09/17 Python
Rockport乐步美国官网:风靡美国的白宫鞋
2016/11/24 全球购物
家得宝官网:The Home Depot(全球最大的家居装饰专业零售商)
2018/12/17 全球购物
简述网络文件系统NFS,并说明其作用
2016/10/19 面试题
酒吧副总经理岗位职责
2013/12/10 职场文书
电大毕业生自我鉴定
2014/04/10 职场文书
工人先进事迹材料
2014/12/26 职场文书
裁员通知
2015/04/25 职场文书
MySQL学习总结-基础架构概述
2021/04/05 MySQL
Python通过m3u8文件下载合并ts视频的操作
2021/04/16 Python
Javascript中Microtask和Macrotask鲜为人知的知识点
2022/04/02 Javascript
Oracle 11g数据库使用expdp每周进行数据备份并上传到备份服务器
2022/06/28 Oracle