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 Ext JS 状态默认存储时间
Feb 15 Javascript
jQuery find和children方法使用
Jan 31 Javascript
Javascript insertAfter() 实现函数代码
Oct 12 Javascript
通过正则表达式实现表单验证是否为中文
Feb 18 Javascript
JS制作简单的三级联动
Mar 18 Javascript
js实现改进的仿蓝色论坛导航菜单效果代码
Sep 06 Javascript
jQuery学习心得总结(必看篇)
Jun 10 Javascript
Bootstrap表单布局
Jul 19 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
Oct 26 Javascript
Ionic+AngularJS实现登录和注册带验证功能
Feb 09 Javascript
从理论角度讨论JavaScript闭包
Apr 03 Javascript
解决vant title-active-color与title-inactive-color不生效问题
Nov 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
理解PHP5中static和const关键字的区别
2007/03/19 PHP
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
2011/05/18 PHP
全新Mac配置PHP开发环境教程
2016/02/03 PHP
laravel接管Dingo-api和默认的错误处理方式
2019/10/25 PHP
encode脚本和normal脚本混用的问题与解决方法
2007/03/08 Javascript
javascript代码编写需要注意的7个小细节小结
2011/09/21 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
2013/09/10 Javascript
javascipt匹配单行和多行注释的正则表达式
2013/11/20 Javascript
js对字符的验证方法汇总
2015/02/04 Javascript
jQuery使用drag效果实现自由拖拽div
2015/06/11 Javascript
最细致的vue.js基础语法 值得收藏!
2016/11/03 Javascript
Ajax实现不刷新取最新商品
2017/03/01 Javascript
详解使用fetch发送post请求时的参数处理
2017/04/05 Javascript
微信小程序 开发之全局配置
2017/05/05 Javascript
单行 JS 实现移动端金钱格式的输入规则
2017/05/22 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
2017/07/10 jQuery
nvm、nrm、npm 安装和使用详解(小结)
2019/01/17 Javascript
nodejs中实现用户注册路由功能
2019/05/20 NodeJs
JS Ajax请求会话过期处理问题解决方法分析
2019/11/16 Javascript
基于Vue+Webpack拆分路由文件实现管理
2020/11/16 Javascript
python服务器与android客户端socket通信实例
2014/11/12 Python
详解Python中的多线程编程
2015/04/09 Python
django允许外部访问的实例讲解
2018/05/14 Python
Python获取航线信息并且制作成图的讲解
2019/01/03 Python
Python向excel中写入数据的方法
2019/05/05 Python
40个你可能不知道的Python技巧附代码
2020/01/29 Python
python实现五子棋程序
2020/04/24 Python
Python tkinter界面实现历史天气查询的示例代码
2020/08/23 Python
浅谈html5增强的页面元素
2016/06/14 HTML / CSS
阿联酋航空假期:Emirates Holidays
2018/03/20 全球购物
中国电子产品批发商/跨境电商/外贸网:Sunsky-online
2020/04/20 全球购物
食品流通安全承诺书
2014/05/22 职场文书
国际贸易系求职信
2014/08/09 职场文书
2015年七一建党节活动方案
2015/05/05 职场文书
公司规章制度范本
2015/08/03 职场文书
2019新员工心得体会
2019/06/25 职场文书