ngIf指令删除或重新创建基于表达式的DOM树的一部分。如果分配给ngIf的表达式计算为假值,那么元素将从DOM中删除,否则元素的克隆将被重新注入到DOM中。

ngIf不同于ngHide和ngShow,ngIf完全删除并重新创建DOM中的元素,而不是通过显示的css属性更改其可见性。当这种差异非常明显时,一个常见的情况是使用依赖于DOM中的元素位置的css选择器,例如::first-child or :last-child的伪类。

注意,当使用ngIf删除元素时,它的作用域将被销毁,当元素被恢复时将创建一个新的范围。在ngIf中创建的范围从其父范围继承了原型继承。这是一个重要的暗示,如果ngIf中使用了ngModel来绑定到在父范围内定义的javascript原语。在这种情况下,对子范围内变量的任何修改将覆盖(隐藏)父范围内的值。

另外,ngIf使用编译后的状态重新创建元素。这种行为的一个例子是,如果元素的class属性在编译后被直接修改,使用jQuery的.addClass()方法,然后删除元素。当ngIf重新创建元素时,添加的类将会丢失,因为原始编译的状态被用于重新生成元素。

转载于:https://www.cnblogs.com/ms-grf/p/7009073.html

directive ngIf相关推荐

  1. Angular ng-template元素的学习笔记

    ng-template: As the name suggests the ng-template is a template element that Angular uses with struc ...

  2. react 生命挂钩_角生命周期挂钩:ngOnChanges,ngOnInit等

    react 生命挂钩 为什么我们需要生命周期挂钩? (Why do we need lifecycle hooks?) Modern front-end frameworks move the app ...

  3. 浅谈Angular如何自定义创建指令@Directive

    ​知识普及 Angular 指令根据其创建形式分为内置指令和自定义指令,指令按照类型分: 模板指令--组件就是模板指令(只能自定义) 属性型指令 -- 更改元素.组件或其他指令的外观或行为的指令(有内 ...

  4. Angular 下的 directive (part 2)

    ngCloak ngCloak指令被使用在,阻止angular模板从浏览器加载的时候出现闪烁的时候.使用它可以避免闪烁问题的出现.   该指令可以应用于<body>元素,但首选使用多个ng ...

  5. angularjs 1.3 综合学习 (one way bind , ng-if , ng-switch , ng-messages, ng-form ,ng-model )

    主要讲解1.3后的一些新功能,和一些以前没有介绍的小功能 (ng-if,ng-switch). 1.one way bind 这个之前的版本已经有人自己实现了,但是在1.3之后,angularjs 有 ...

  6. Angular5 *ngIf 和 hidden 的区别

    问题 项目中遇到一个问题,有一个过滤查询的面板,需要通过一个展开折叠的button,来控制它的show 和 hide.这个面板中,有一个Select 组件,一个 input 查询输入框. 原来代码是: ...

  7. Angular 的 ngIf 和 NgIf 有何区别

    在Angular官方文档里,可以看到ngIf和NgIf这两种拼写混杂使用. NgIf 指的是指令类: ngIf 指的是指令的属性名称. 指令类以 UpperCamelCase (NgIf) 拼写. 指 ...

  8. html中 n怎么使用方法,如何在html注释中使用ngIf?

    AngularJS有限制使用ng-if仅限于attribute由A如下所示.所以,你不能在comment var ngIfDirective = ['$animate', function($anim ...

  9. 手写ngIf,使用视图容器引用ViewContainerRef和模板引用TemplateRef

    写这篇博客的原有:虽然Angular官网有提到指令的使用,以及相关Ref的使用,但是对相关Ref并没有做出详细的解释,也没有提供相关的详细文档. 明确 *ngIf 是一个结构型指令,需要 @Direc ...

最新文章

  1. kafka数据丢失的场景
  2. Unity学习笔记4 更换编辑器为VS2013及VS的背景图片设置
  3. C++ STL : 模拟实现STL中的容器适配器priority_queue
  4. python 中 __name__ 的使用
  5. python人脸识别opencv_手把手教你如何用 OpenCV + Python 实现人脸识别
  6. 微服务:更愉快还是更嘈杂?
  7. 修改Win7的默认文件夹排列方式
  8. 《Android框架揭秘》——1.2节通过启动过程分析Android Framework
  9. uniapp微信小程序订阅消息发送服务通知--超详细
  10. 使用链表实现LIFO栈
  11. MapGuide源码分析----MapGuide服务器源码分析
  12. 基于PyQt5、metpy和matplotlib的探空资料可视化界面
  13. 动态沙箱是威胁防御的关键所在
  14. java 自然常数e中出现的连续的第一个10个数字组成的质数_冷知识:数学常数“e”的传奇故事...
  15. 根据指定字母,顺序输出若干相邻字母 C语言
  16. js实现 todoList
  17. 3.shader的基本结构
  18. windows10/11自带的重装方法
  19. 07 降低cache不命中率
  20. html 导航中加入分割线,代码实现导航栏分割线_html/css_WEB-ITnose

热门文章

  1. 又是大义灭自己!QQ小程序被微信封禁暂停使用:不封一下都不知道这个功能...
  2. 星座排序代码 —— 代码篇
  3. 芒果超媒的长视频寒冬突围
  4. 贝壳将以介绍方式在港交所双重主要上市,预计5月11日挂牌
  5. 计算机打不开打印机设备,Win7系统控制面板“设备和打印机”打不开怎么办
  6. SNS应用好友动态Feed模块设计
  7. java微信公众号中文乱码_java微信公众平台开发回复中文消息乱码解决方案
  8. 计算机毕业设计springboot+vue基本微信小程序的汽车租赁公司小程序
  9. 微博春晚背后的技术故事
  10. 微信比拼支付宝,也来送红包啦!附领取攻略