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获取css z-index在各种浏览器中的返回值
Sep 15 Javascript
js判断一个元素是否为另一个元素的子元素的代码
Mar 21 Javascript
js setTimeout 参数传递使用介绍
Aug 13 Javascript
5个JavaScript经典面试题
Oct 13 Javascript
Vue实例简单方法介绍
Jan 20 Javascript
Angular 2父子组件数据传递之@Input和@Output详解(下)
Jul 05 Javascript
angular2路由切换改变页面title的示例代码
Aug 23 Javascript
JavaScript new对象的四个过程实例浅析
Jul 31 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
Sep 18 Javascript
Layer组件多个iframe弹出层打开与关闭及参数传递的方法
Sep 25 Javascript
javscript 数组扁平化的实现
Feb 03 Javascript
javascript之Object.assign()的痛点分析
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与MYSQL中UTF8 中文排序示例代码
2014/10/23 PHP
php实现的日历程序
2015/06/18 PHP
CentOS下与Apache连接的PHP多版本共存方案实现详解
2015/12/19 PHP
thinkphp5框架实现的自定义扩展类操作示例
2019/05/16 PHP
基于php解决json_encode中文UNICODE转码问题
2020/11/10 PHP
基于jQuery实现的当离开页面时出现提示的实现代码
2011/06/27 Javascript
jQuery1.6 类型判断实现代码
2011/09/01 Javascript
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
jquery easyui中treegrid用法的简单实例
2014/02/18 Javascript
JavaScript限定图片显示大小的方法
2015/03/11 Javascript
jQuery下拉友情链接美化效果代码分享
2015/08/26 Javascript
最丑的时钟效果!js canvas时钟制作方法
2016/08/15 Javascript
原生JS+HTML5实现的可调节写字板功能示例
2018/08/30 Javascript
微信小程序开发之自定义tabBar的实现
2018/09/06 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
JS实现拖拽元素时与另一元素碰撞检测
2020/08/27 Javascript
在Python中使用__slots__方法的详细教程
2015/04/28 Python
Python中pow()和math.pow()函数用法示例
2018/02/11 Python
python和flask中返回JSON数据的方法
2018/03/26 Python
python数字图像处理之高级形态学处理
2018/04/27 Python
如何使用django的MTV开发模式返回一个网页
2019/07/22 Python
python中hasattr()、getattr()、setattr()函数的使用
2019/08/16 Python
利用python制作拼图小游戏的全过程
2020/12/04 Python
Python绘制词云图之可视化神器pyecharts的方法
2021/02/23 Python
猫咪家具:CatsPlay
2018/11/03 全球购物
德国药房apodiscounter中文官网:德国排名前三的网上药店
2019/06/03 全球购物
澳大利亚礼品卡商店:Gift Card Store
2019/06/24 全球购物
就业自荐书
2013/12/05 职场文书
小学开学典礼主持词
2014/03/19 职场文书
实习生岗位职责
2014/04/12 职场文书
我的中国梦演讲稿400字
2014/08/19 职场文书
2015年幼儿园安全工作总结
2015/05/12 职场文书
长辈生日祝福语大全(72句)
2019/08/09 职场文书
background-position百分比原理详解
2021/05/08 HTML / CSS
MySql存储过程之逻辑判断和条件控制
2021/05/26 MySQL