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 相关文章推荐
基于jQuery的淡入淡出可自动切换的幻灯插件打包下载
Sep 15 Javascript
jquery取消事件冒泡的三种方法(推荐)
May 28 Javascript
jQuery实现的tab标签切换效果示例
Sep 05 Javascript
浅谈jQuery添加的HTML,JS失效的问题
Oct 05 Javascript
jquery组件WebUploader文件上传用法详解
Oct 23 Javascript
微信小程序之小豆瓣图书实例
Nov 30 Javascript
自动适应iframe右边的高度
Dec 22 Javascript
解决layui中table异步数据请求不支持自定义返回数据格式的问题
Aug 19 Javascript
Vue修改项目启动端口号方法
Nov 07 Javascript
js+canvas实现纸牌游戏
Mar 16 Javascript
解决vuex刷新数据消失问题
Nov 12 Javascript
three.js如何实现3D动态文字效果
Mar 03 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 sprintf()函数让你的sql操作更安全
2008/07/23 PHP
PHP常用技巧总结(附函数代码)
2012/02/04 PHP
对于PHP 5.4 你必须要知道的
2013/08/07 PHP
PHP生成等比缩略图类和自定义函数分享
2014/06/25 PHP
smarty模板引擎之配置文件数据和保留数据
2015/03/30 PHP
php使用preg_match()函数验证ip地址的方法
2017/01/07 PHP
ThinkPHP3.2框架操作Redis的方法分析
2019/05/05 PHP
PHP页面静态化――纯静态与伪静态用法详解
2020/06/05 PHP
javascript闭包的理解和实例
2010/08/12 Javascript
javascript四舍五入函数代码分享(保留后几位)
2013/12/10 Javascript
Javascript实现Web颜色值转换
2015/02/05 Javascript
JS+CSS实现电子商务网站导航模板效果代码
2015/09/10 Javascript
AngularJS中下拉框的基本用法示例
2017/10/11 Javascript
从源码看angular/material2 中 dialog模块的实现方法
2017/10/18 Javascript
jQuery实现左右滑动的toggle方法
2018/03/03 jQuery
小程序文字跑马灯效果
2018/12/28 Javascript
Vue infinite update loop的问题解决
2019/04/23 Javascript
优雅的处理vue项目异常实战记录
2019/06/05 Javascript
[01:20]DOTA2上海特级锦标赛现场采访:谁的ID最受青睐
2016/03/25 DOTA
Python、Javascript中的闭包比较
2015/02/04 Python
python中循环语句while用法实例
2015/05/16 Python
Python优化技巧之利用ctypes提高执行速度
2016/09/11 Python
对pandas处理json数据的方法详解
2019/02/08 Python
Python图像处理之图片文字识别功能(OCR)
2019/07/30 Python
tensorflow之获取tensor的shape作为max_pool的ksize实例
2020/01/04 Python
关于tf.TFRecordReader()函数的用法解析
2020/02/17 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
2020/06/24 Python
Python下划线5种含义代码实例解析
2020/07/10 Python
深入浅出CSS3 background-clip,background-origin和border-image教程
2011/01/27 HTML / CSS
html5 Web SQL Database 之事务处理函数transaction与executeSQL解析
2013/11/07 HTML / CSS
Fanatics法国官网:美国体育电商
2019/08/27 全球购物
个人纪律作风整改措施思想汇报
2014/10/12 职场文书
事业单位财务人员岗位职责
2015/04/14 职场文书
保险公司2016开门红口号集锦
2015/12/24 职场文书
创业计划书之DIY自助厨房
2019/09/06 职场文书
Go语言测试库testify使用学习
2022/07/23 Golang