用途

ng-hide/ng-show属性用来控制页面内元素的显示或隐藏。

ng-hide条件为true时,隐藏所在元素;false,则显示所在元素。

ng-show正好相反。true时,显示所在元素;false,则隐藏所在元素。

用法

<!-- when $scope.myValue is truthy (element is visible) -->
<div  class="ng-hide" ng-show="myValue"></div><!-- when $scope.myValue is truthy (element is hidden) -->
<div ng-hide="myValue"></div>

class="ng-hide" 可以不写,官方文档也没要求,但会引起页面初始显示的问题,后面详解。

工作原理

ng-hide条件为true时,向所在元素的class中添加"ng-hide" 进行元素的隐藏;为false时,将"ng-hide"从class中移除,从而使隐藏的元素显示。

ng-show正好相反。条件为false时,向当前元素的class中添加"ng-hide"进行元素的隐藏;为true时,将"ng-hide"从class中移除,从而使隐藏的元素显示。

ngshow的核心代码:

$animate[value ? 'removeClass' : 'addClass'](element, NG_HIDE_CLASS, {tempClasses: NG_HIDE_IN_PROGRESS_CLASS
});

常见问题

# 元素不随着指定的值进行显示或隐藏

<div ng-show="{{myValue}}" class="ng-hide"></div>

上述代码中ng-show 绑定的是{{}}表达式的值对应的字符串,而不是myValue。布尔型对应的是"" 空串 或者 "true" 。所以,myValue值变化后,对于ng-show而言,监视的是固定的字符串,没有变化。也就不会触发页面元素的显示或隐藏事件。

# 页面初始化显示混乱、闪烁的问题

由于页面初始化,先处理html显示,然后是angular js的处理后的显示,所以js运行前,所有ng-show控制不显示的内容,在页面初始化中先显示,js运行后才隐藏。这个闪烁感主要取决于浏览器处理的速度(当然也依赖人的视觉系统,编码能搞定这事就牛X了)。这个现象在手机上会明显一些。

简单的解决方案,在用到ng-show的元素里添加ng-hide class。

<div  class="ng-hide" ng-show="myValue"></div>

还有就是用ng-cloak来处理,原理一样。

转载于:https://www.cnblogs.com/itman70s/p/ngshow.html

AngularJS 指令之 ng-hide/ng-show相关推荐

  1. 【转】angularjs指令中的compile与link函数详解

    这篇文章主要介绍了angularjs指令中的compile与link函数详解,本文同时诉大家complie,pre-link,post-link的用法与区别等内容,需要的朋友可以参考下 通常大家在使用 ...

  2. AngularJS 指令

    1. AngularJS指令的特点: AngularJS通过被称为指令的新属性来扩展HTML,指令的前缀为ng-. AngularJS通过内置的指令来为应用添加功能. AngularJS允许你自定义指 ...

  3. AngularJS指令封装高德地图组件

    2019独角兽企业重金招聘Python工程师标准>>> 1 概述 公司移动门户原来是基于AngularJS指令封装的百度地图组件,用于签到.签退.定位等功能,在使用过程中发现百度地图 ...

  4. 如何调用AngularJS指令中定义的方法?

    本文翻译自:How to call a method defined in an AngularJS directive? I have a directive, here is the code : ...

  5. AngularJS学习笔记二:AngularJS指令

    AngularJS 指令: AngularJS 通过被称为 指令 的新属性来扩展 HTML. AngularJS 指令是扩展的 HTML 属性,带有前缀 ng-. 几个常用 指令: ng-app 指令 ...

  6. AngularJS 指令实践指南(二)

    这个系列教程的第一部分给出了AngularJS指令的基本概述,在文章的最后我们介绍了如何隔离一个指令的scope.第二部分将承接上一篇继续介绍.首先,我们会看到在使用隔离scope的情况下,如何从指令 ...

  7. Polymer元素和AngularJS指令有什么区别?

    本文翻译自:What is the difference between Polymer elements and AngularJS directives? On the Polymer Getti ...

  8. AngularJS指令范围中的#39;@#39;和#39;=#39;有什么区别?

    本文翻译自:What is the difference between '@' and '=' in directive scope in AngularJS? I've read the Angu ...

  9. angularjs指令中的compile与link函数详解

    通常大家在使用ng中的指令的时候,用的链接函数最多的是link属性,下面这篇文章将告诉大家complie,pre-link,post-link的用法与区别. angularjs里的指令非常神奇,允许你 ...

  10. AngularJS 指令实践

    2019独角兽企业重金招聘Python工程师标准>>> 指令(Directives)是所有AngularJS应用最重要的部分.尽管AngularJS已经提供了非常丰富的指令,但还是经 ...

最新文章

  1. 编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别
  2. oracle asm 日志,Oracle+RAC+ASM数据库ora-00257日志归档器错误解决方法
  3. oracle9i查等待事件,Oracle9i中的一个特殊等待事件
  4. 怎么hold住版本质量
  5. 晨哥真有料丨盘点追女生的作死行为!
  6. git 上的 python package 的安装
  7. 关于超定方程组的解算方法
  8. 微信小程序云数据库调用模板
  9. 声纹识别技术简介——化繁为简的艺术
  10. 备案网站未正规绑定服务器,网站备案对收录到底有没有影响
  11. Android中点击链接调起App
  12. STM32F10×××系列的PC13、PC14、PC15引脚用作普通IO口配置方法
  13. 一周速递|全球车联网产业动态(2022年10月16日)
  14. 安卓和IOS推广技巧汇总,app安卓推广、ios推广aso优化
  15. centos8 免密登录
  16. 微信小程序消息推送功能开发(java实现)
  17. VectorMapNet | 端到端的矢量化高精地图学习
  18. 嵌入式系统设计电子书
  19. 攻击篇--远程控制(一)生成被控端与主控端
  20. 安卓手机客户端与服务器纯纯socket实现文件下载+断点续传

热门文章

  1. css,js缓存,不能立即响应
  2. 数据库优化实例以及优化的小技巧
  3. Tensorflow【实战Google深度学习框架】TFLearn大宝剑
  4. srm linux字符界面,如何使用srm安全的删除Linux中的文件
  5. mysql的端点在哪查看_数据库镜像端点
  6. 网络推广平台浅析通常网站关键词优化密度该如何把控呢?
  7. 网络营销——网站权重并不是判断网站营销水平的唯一标准
  8. 优化网站设计方案提升网站用户回头率
  9. python计算机体系三层结构_Python tkinter 实现简单登陆注册 基于B/S三层体系结构,实现用户身份验证...
  10. python内置数据结构教程_python课程第二周 内置数据结构——列表和元组