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 学习笔记 Black.Caffeine 09.11.28
Nov 30 Javascript
载入jQuery库的最佳方法详细说明及实现代码
Dec 28 Javascript
完美解决AJAX跨域问题
Nov 01 Javascript
详解JavaScript ES6中的Generator
Jul 28 Javascript
jQuery实现的无限级下拉菜单功能示例
Sep 12 Javascript
Angular2学习教程之组件中的DOM操作详解
May 28 Javascript
JS实现的邮箱提示补全效果示例
Jan 30 Javascript
vue.js 添加 fastclick的支持方法
Aug 28 Javascript
在element-ui的select下拉框加上滚动加载
Apr 18 Javascript
layer.open提交子页面的form和layedit文本编辑内容的方法
Sep 27 Javascript
JS三级联动代码格式实例详解
Dec 30 Javascript
VUE+Element实现增删改查的示例源码
Nov 23 Vue.js
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数据结构 算法(PHP描述) 简单选择排序 simple selection sort
2011/08/09 PHP
php实现的SSO单点登录系统接入功能示例分析
2016/10/12 PHP
laravel自定义分页效果
2017/07/23 PHP
javascript 不间断的图片滚动并可点击
2010/01/15 Javascript
Jquery判断IE6等浏览器的代码
2011/04/05 Javascript
js 链式延迟执行DOME
2012/01/04 Javascript
html组件不可输入(只读)同时任何组件都有效
2013/04/01 Javascript
JavaScript使用setTimeout实现延迟弹出警告框的方法
2015/04/07 Javascript
javascript面向对象程序设计高级特性经典教程(值得收藏)
2016/05/19 Javascript
浅析JavaScript 箭头函数 generator Date JSON
2016/05/23 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
一道面试题引发的对javascript类型转换的思考
2017/03/06 Javascript
用 js 的 selection range 操作选择区域内容和图片
2017/04/18 Javascript
基于BootStrap实现简洁注册界面
2017/07/20 Javascript
浅谈angular4实际项目搭建总结
2017/12/01 Javascript
微信小程序实现tab左右切换效果
2020/11/15 Javascript
vue项目中mock.js的使用及基本用法
2019/05/22 Javascript
vue实现扫码功能
2020/01/17 Javascript
[01:00:49]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第二场 1月31日
2021/03/11 DOTA
pymssql ntext字段调用问题解决方法
2008/12/17 Python
python画折线图的程序
2018/07/26 Python
Python制作微信好友背景墙教程(附完整代码)
2019/07/17 Python
Django对models里的objects的使用详解
2019/08/17 Python
为什么黑客都用python(123个黑客必备的Python工具)
2020/01/31 Python
Python基础之字符串操作常用函数集合
2020/02/09 Python
python如何求圆的面积
2020/07/01 Python
使用Python爬取小姐姐图片(beautifulsoup法)
2021/02/11 Python
大学生文员专业个人求职信范文
2014/01/05 职场文书
小学运动会广播稿200字(十二篇)
2014/01/14 职场文书
新学期红领巾广播稿
2014/01/14 职场文书
电气自动化专业职业规划范文
2014/02/16 职场文书
2014年专项整治工作总结
2014/11/17 职场文书
销售2014年度工作总结
2014/12/08 职场文书
给老婆的检讨书
2015/01/27 职场文书
班主任工作经验交流会总结
2015/11/02 职场文书
游戏开发中如何使用CocosCreator进行音效处理
2021/04/14 Javascript