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 相关文章推荐
Javascript 不能释放内存.
Sep 07 Javascript
JS代码优化技巧之通俗版(减少js体积)
Dec 23 Javascript
js导入导出excel(实例代码)
Nov 25 Javascript
深入分析JQuery和JavaScript的异同
Oct 23 Javascript
JavaScript学习总结之JS、AJAX应用
Jan 29 Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
Jan 18 Javascript
详解js的异步编程技术的方法
Feb 09 Javascript
详解vue+vueRouter+webpack的简单实例
Jun 17 Javascript
vue实现父子组件之间的通信以及兄弟组件的通信功能示例
Jan 29 Javascript
微信小程序实现手势滑动效果
Aug 26 Javascript
Vue3 源码导读(推荐)
Oct 14 Javascript
Vue-drag-resize 拖拽缩放插件的使用(简单示例)
Dec 04 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
Mysql中limit的用法方法详解与注意事项
2008/04/19 PHP
用Php编写注册后Email激活验证的实例代码
2013/03/11 PHP
使用PHP接收POST数据,解析json数据
2013/06/28 PHP
php实现通用的信用卡验证类
2015/03/24 PHP
thinkphp微信开发(消息加密解密)
2015/12/02 PHP
Yii2实现上下联动下拉框功能的方法
2016/08/10 PHP
关于PHP中字符串与多进制转换函数的实例代码
2016/11/03 PHP
用js实现键盘方向键翻页功能的代码
2007/06/03 Javascript
Javascript中的包装类型介绍
2015/04/02 Javascript
浅析jQuery Ajax请求参数和返回数据的处理
2016/02/24 Javascript
jQuery判断checkbox选中状态
2016/05/12 Javascript
jQuery中deferred对象使用方法详解
2016/07/14 Javascript
js浏览器html5表单验证
2016/10/17 Javascript
微信小程序商城项目之购物数量加减(3)
2017/04/17 Javascript
基于zepto.js实现登录界面
2017/10/09 Javascript
Vue之Vue.set动态新增对象属性方法
2018/02/23 Javascript
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
2019/11/12 Javascript
如何利用 JS 脚本实现网页全自动秒杀抢购功能
2020/10/12 Javascript
[08:08]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY
2014/06/25 DOTA
举例详解Python中的split()函数的使用方法
2015/04/07 Python
Python出现segfault错误解决方法
2016/04/16 Python
python 多维切片之冒号和三个点的用法介绍
2018/04/19 Python
python自动登录12306并自动点击验证码完成登录的实现源代码
2018/04/25 Python
详解Python3序列赋值、序列解包
2019/05/14 Python
解决Django migrate不能发现app.models的表问题
2019/08/31 Python
django框架cookie和session用法实例详解
2019/12/10 Python
Python爬虫获取页面所有URL链接过程详解
2020/06/04 Python
Python分类测试代码实例汇总
2020/07/23 Python
Python学习之time模块的基本使用
2021/01/17 Python
Edwaybuy西班牙:小米在线商店
2019/12/04 全球购物
美国小蜜蜂Burt’s Bees德国官网:天然唇部、皮肤和身体护理产品
2020/06/14 全球购物
财务人员个人求职信范文
2013/12/04 职场文书
四年的个人工作自我评价
2013/12/10 职场文书
如何写自我鉴定
2014/03/19 职场文书
国旗下演讲稿
2014/05/08 职场文书
浅谈redis五大数据结构和使用场景
2021/04/12 Redis