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 相关文章推荐
Mootools 1.2教程 Tooltips
Sep 15 Javascript
基于jquery实现的鼠标拖拽元素复制并写入效果
Aug 23 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
Apr 29 Javascript
Javascript与jQuery方法的隐藏与显示
Jan 19 Javascript
BootStrap整体框架之基础布局组件
Dec 15 Javascript
Vue 短信验证码组件开发详解
Feb 14 Javascript
浅析JavaScript中var that=this
Feb 17 Javascript
JavaScript中的return布尔值的用法和原理解析
Aug 14 Javascript
vue-cli初始化项目中使用less的方法
Aug 09 Javascript
js canvas实现红包照片效果
Aug 21 Javascript
详解node登录接口之密码错误限制次数(含代码)
Oct 25 Javascript
js prototype深入理解及应用实例分析
Nov 25 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 组件化编程技巧
2009/06/06 PHP
PHP文件大小格式化函数合集
2014/03/10 PHP
win7计划任务定时执行PHP脚本设置图解
2014/05/09 PHP
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
2014/08/20 PHP
php对文件进行hash运算的方法
2015/04/03 PHP
PHP抓取远程图片(含不带后缀的)教程详解
2016/10/21 PHP
php json中文编码为null的解决办法
2016/12/14 PHP
PHP给源代码加密的几种方法汇总(推荐)
2018/02/06 PHP
RSA实现JS前端加密与PHP后端解密功能示例
2019/08/05 PHP
杨氏矩阵查找的JS代码
2013/03/21 Javascript
Javascript 运动中Offset的bug解决方案
2014/12/24 Javascript
javascript中this的四种用法
2015/05/11 Javascript
jQuery密码强度验证控件使用详解
2017/01/05 Javascript
ejsExcel模板在Vue.js项目中的实际运用
2018/01/27 Javascript
Vue服务器渲染Nuxt学习笔记
2018/01/31 Javascript
探秘vue-rx 2.0(推荐)
2018/09/21 Javascript
vue根据值给予不同class的实例
2018/09/29 Javascript
微信小程序中网络请求缓存的解决方法
2019/12/29 Javascript
Vue实现点击箭头上下移动效果
2020/06/11 Javascript
JS数据类型分类及常用判断方法
2020/11/19 Javascript
Python中的装饰器用法详解
2015/01/14 Python
以Flask为例讲解Python的框架的使用方法
2015/04/29 Python
解决python3 Pycharm上连接数据库时报错的问题
2018/12/03 Python
Python 3.x基于Xml数据的Http请求方法
2018/12/28 Python
python 命令行传入参数实现解析
2019/08/30 Python
Django继承自带user表并重写的例子
2019/11/18 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
2020/12/14 Python
CSS3 清除浮动的方法示例
2018/06/01 HTML / CSS
html5 css3网站菜单实现代码
2013/12/23 HTML / CSS
一个基于canvas的移动端图片编辑器的实现
2020/10/28 HTML / CSS
Linux如何压缩可执行文件
2014/03/27 面试题
《鞋匠的儿子》教学反思
2014/03/02 职场文书
教职工代表大会主持词
2014/04/01 职场文书
信用卡结清证明怎么写
2014/09/13 职场文书
学校计划生育责任书
2015/05/09 职场文书
Apache Hudi的多版本清理服务彻底讲解
2022/03/31 Servers