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 相关文章推荐
getElementByIdx_x js自定义getElementById函数
Jan 24 Javascript
iphone safari不支持position fixed的解决方法
May 04 Javascript
纯js实现瀑布流展现照片(自动适应窗口大小)
Apr 08 Javascript
JavaScript程序中的流程控制语句用法总结
May 23 Javascript
jQuery控制div实现随滚动条滚动效果
Jun 07 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
Jun 24 Javascript
jQuery实现的无限级下拉菜单功能示例
Sep 12 Javascript
JS实现中文汉字按拼音排序的方法
Oct 09 Javascript
react中的ajax封装实例详解
Oct 17 Javascript
Nuxt.js实战详解
Jan 18 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
Mar 25 jQuery
JavaScript实现新年倒计时效果
Nov 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
解决中英文字符串长度问题函数
2007/01/16 PHP
thinkPHP模型初始化实例分析
2015/12/03 PHP
PHP数组游标实现对数组的各种操作详解
2016/01/26 PHP
php实现大文件断点续传下载实例代码
2019/10/01 PHP
javascript中获取选中对象的类型
2007/04/02 Javascript
js下用eval生成JSON对象
2010/09/17 Javascript
javaScript同意等待代码实现心得
2011/01/01 Javascript
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
2013/05/07 Javascript
js中关于一个分号的崩溃示例
2013/11/11 Javascript
当滚动条滚动到页面底部自动加载增加内容的js代码
2014/05/13 Javascript
jQuery ajax serialize() 方法使用示例
2014/11/02 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
正则验证小数点后面只能有两位数的方法
2017/02/28 Javascript
es6 字符串String的扩展(实例讲解)
2017/08/03 Javascript
js使用formData实现批量上传
2020/03/27 Javascript
vue项目从node8.x升级到12.x后的问题解决
2019/10/25 Javascript
javascript/jquery实现点击触发事件的方法分析
2019/11/11 jQuery
vue-cli4.x创建企业级项目的方法步骤
2020/06/18 Javascript
详解Vue3.0 + TypeScript + Vite初体验
2021/02/22 Vue.js
python函数缺省值与引用学习笔记分享
2013/02/10 Python
Python中的数据对象持久化存储模块pickle的使用示例
2016/03/03 Python
一个基于flask的web应用诞生 flask和mysql相连(4)
2017/04/11 Python
tensorflow: 查看 tensor详细数值方法
2018/06/13 Python
python实现windows壁纸定期更换功能
2019/01/21 Python
python 获取微信好友列表的方法(微信web)
2019/02/21 Python
django页面跳转问题及注意事项
2019/07/18 Python
利用python在大量数据文件下删除某一行的例子
2019/08/21 Python
Python实现银行账户资金交易管理系统
2020/01/03 Python
Python xlwt模块使用代码实例
2020/06/10 Python
Python图像阈值化处理及算法比对实例解析
2020/06/19 Python
matplotlib之pyplot模块之标题(title()和suptitle())
2021/02/22 Python
巴西儿童时尚购物网站:Dinda
2019/08/14 全球购物
《诚实与信任》教学反思
2014/04/10 职场文书
爱国电影观后感
2015/06/19 职场文书
css display table 自适应高度、宽度问题的解决
2021/05/07 HTML / CSS