首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Angular2 ngIf没有更新DOM吗?

Angular2的ngIf指令用于根据条件动态地添加或移除DOM元素。当条件为true时,ngIf会将元素添加到DOM中,当条件为false时,ngIf会从DOM中移除元素。

在Angular2中,ngIf指令会根据条件的变化来更新DOM。当条件发生变化时,ngIf会重新计算条件表达式,并根据结果来添加或移除DOM元素。这意味着ngIf会更新DOM以反映条件的变化。

ngIf的更新DOM的过程是通过Angular的变更检测机制实现的。Angular会在组件的变更检测周期中检测ngIf指令的条件是否发生变化,并根据条件的变化来更新DOM。这个过程是自动进行的,无需手动干预。

总结起来,Angular2的ngIf指令会根据条件的变化来更新DOM,确保DOM的状态与条件保持一致。

关于Angular2的ngIf指令的更多信息,您可以参考腾讯云的Angular文档:

https://cloud.tencent.com/document/product/1132/46382

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ionic3应该善用组件和指令

其实ionic3(angualr4)和ionic2(angular2)差不多,但和ionic1(angular1)就差别非常大了,可以说基本是推倒了重来。...在angular1时代,组件和指令是一回事,即严格来说,没有组件这概念,只有指令,而到了angular2时代,虽说组件仍是一种特殊的指令,但已经有一定目的明显区分开来,分别用Directive和Component...结构指令 结构指令,用于修改DOM结构。其实就是模版指令,如ngIf,当条件为true时,该元素会被添加到DOM中。其主要依赖TemplateRef和ViewContainerRef来完成操作。...自定义结构指令 实例:山寨一个*ngIf的的收缩显示指令,仅为了起到抛砖引玉效果。...html如下调用即可: 总结:可以看出来,自定义指令和组件不算复杂,只是大家都没有要去封装的概念

3.5K40

Angular 2 架构(下)

每种形式都有一个方向——从 DOM 来、到 DOM 去、双向,就像图中的箭头所示意的。 插值 : 在 HTML 标签中显示组件值。...结构指令:用来改变DOM树的结构 组件:作为指令的一个重要子类,组件本质上可以看作是一个带有模板的指令。...*ngIf 表示只有在选择的项存在时,才会包含 SiteDetail 组件。...---- 服务(Services) Angular2中的服务是封装了某一特定功能,并且可以通过注入的方式供他人使用的独立模块。 服务分为很多种,包括:值、函数,以及应用所需的特性。...如果容器中还没有所请求的服务实例,注入器就会创建一个服务实例,并且添加到容器中,然后把这个服务返回给 Angular 。

2.2K20

Angular2 VS Angular4 深度对比:特性、性能

那么,本文将会对Angular2和Angular4进行深度对比,以便帮助大家更好的了解这两个版本。 Angular2 Angular2是在2015年底发布的。...Angular 2.0基于ES6标准和“evergreen”现代浏览器(可自动更新到最新版本的浏览器)。...该模板的实例化以及插入到DOM过程可以完全由指令创建者控制。例如ng-repeat和ng-if。...改进 *ngIf 和 *ngFor: 模板绑定语法目前支持一些少量有帮助的更改。现在,开发人员已经可以使用if/else设计​​语法,并分配局部变量了。...TypeScript 2.1和2.2兼容性: Angular4开发组将Angular升级为更新版本的TypeScript。这将提高ngc的速度,方便开发人员将在编码过程中更好的进行类型检查。

8.7K20

AngularJS2.0 教程系列(一)

渲染组件到DOM 将组件渲染到DOM上,需要使用自举/bootstrap函数: bootstrap(EzApp); 这个函数的作用就是通知Angular2框架将EzApp组件渲染到DOM树上。...简单?我知道你一定还有疑问,别着急,我们慢慢把缺失的知识点补上! 注解/Annotation 你一定好奇@Component和@View到底是怎么回事。...看起来像其他语言(比如python) 的装饰器,是这样? ES6规范里没有装饰器。这其实利用了traceur的一个实验特性:注解。...而在Angular2中,bootstrap是围绕组件开始的,你定义一个组件,然后启动它。如果没有一个组件, 你甚至都没有办法使用Angular2!...支持多种渲染引擎 以组件而非DOM为核心,意味着Angular2在内核隔离了对DOM的依赖 - DOM仅仅作为一种可选的渲染引擎存在: ?

2.4K10

【开发指南】(三)认识ionic3

---- 此文中的主角Ionic,就是Hybird技术中的第一代代表,有人会问,既然都发展到第三代了,还有必要学习?...个人认为有的,首先在长期发展中它已经很成熟,基本有的坑别人都踩过了,其次,它对开发人员技术没有那么苛刻,就算没有具备原生开发的能力,也能很容易实现多端并行开发,再者,PWA是下一代前端技术趋势之一。...由于AngularJS 1.x版本在性能上已经很难有较大提升,后来微软和google联合推出了全新设计的基于TypeScript的Angular2,这是对于原始版本完全的重写。...等到angular2更新到了一定版本,一些依赖库分属于2和3,为了便于版本的统一管理,直接跳到了angular4,其实angualr2和4两者的变化不算太多。相应的ionic2也同步升级到3。...: Angular 4.0 新的版本下,改进 AOT 编译器,分离 animations 包,缩小生成后的代码量,运行更快,改进ngIf 和ngFor 等具体内容可以访问angular4更新来查看。

2.7K40

【Appetite】ionic3实录(七)次页实现及分析解决问题【下】

它放在其它地方可以?此外,它上面为什么会放个this.cd.detectChanges()?...的值更新会影响到dom,所以应该在数据更新从而使得dom更新完成后再调用initSwiper方法。...angular的脏检测机制是基于一定条件和时间的,在给this.vm.dessertSlides赋值,dom还没更新完成就调用initSwiper方法不一定会获得想要结果的,所以在此之前调用手动检测方法...问题二:为什么用[hidden],不用*ngIf或者ngSwitch? 因为前者只是隐藏,而后两者是会移除。...是因为该组件在异步获取到数据this.vm.dessertSlides前已完成了初始化了,这样新数据其实没有应用到,为了处理这种情况,我们改造一下html,为ion-slides组件加上一段*ngIf=

1.4K20

实战 | Change Detection And Batch Update

当我们连续更新数据时,这些框架/库如何避免连续更新DOM,而是进行批量更新? 带着这两个问题,我将简要分析一下React、Angular1、Angular2及Vue的实现机制。...Angular2 当数据变化时,Angular2从根节点往下遍历进行更新,默认Angular2深度遍历数据,进行新老数据的比较来决定是否更新UI,这点和Angular1的脏值检测有点像,但是Angular2...的更新没有副作用,是单向数据流。...Angular1是通过封装自动调用$apply,但是存在手动调用的场景,为了解决这个问题,Angular2没有采用1的实现机制,转而使用了Zone.js。...Vue并没有这么干,不用于React、Angular1/2捕获异步方法上下文去更新,Vue采用了不同的更新策略。

3.2K20

Change Detection And Batch Update

当我们连续更新数据时,这些框架/库如何避免连续更新DOM,而是进行批量更新? 带着这两个问题,我将简要分析一下React、Angular1、Angular2及Vue的实现机制。...有人可能会疑惑了,我们在编码的时候并没有调用$apply,那么UI是怎么更新的呢?...当数据变化时,Angular2从根节点往下遍历进行更新,默认Angular2深度遍历数据,进行新老数据的比较来决定是否更新UI,这点和Angular1的脏值检测有点像,但是Angular2更新没有副作用...Angular1是通过封装自动调用$apply,但是存在手动调用的场景,为了解决这个问题,Angular2没有采用1的实现机制,转而使用了Zone.js。...Vue并没有这么干,不用于React、Angular1/2捕获异步方法上下文去更新,Vue采用了不同的更新策略。

3.3K40

Change Detection And Batch Update

当我们连续更新数据时,这些框架/库如何避免连续更新DOM,而是进行批量更新? 带着这两个问题,我将简要分析一下React、Angular1、Angular2及Vue的实现机制。...遍历所有scope的$$watchers,通过get获取到最新值同last比较,值变化了则通过调用fn更新DOM。有人可能会疑惑了,我们在编码的时候并没有调用$apply,那么UI是怎么更新的呢?...当数据变化时,Angular2从根节点往下遍历进行更新,默认Angular2深度遍历数据,进行新老数据的比较来决定是否更新UI,这点和Angular1的脏值检测有点像,但是Angular2更新没有副作用...Angular1是通过封装自动调用$apply,但是存在手动调用的场景,为了解决这个问题,Angular2没有采用1的实现机制,转而使用了Zone.js。...Vue并没有这么干,不用于React、Angular1/2捕获异步方法上下文去更新,Vue采用了不同的更新策略。

3.7K70

为什么现在的开发者总是拿 Vue.js 和 JavaScript 巨头 Angular、React 比较?

同时,如果某些 watcher 触发了另一个更新,为了确保稳定会多次运行 digest cycle。...Vue 没有 Angular2 那么专制,你可以获得官方的构建系统支持,而且,你可以以你想要的方式来构建你的应用。...但是常言道,没有哪个框架能够永远时髦,Vue 已经被社交巨头用来开发产品。Vue 和 React 有许多相似点,比如虚拟 DOM、响应式、可组合的组件等等。但是,这里我们来讨论下它们的不同点。 1....即便没有优化,提升的渲染性能也使得 Vue 的更新速度 比 React 更快。 生产环境下 Vue 表现同样更好。...因为 Vue.js 可以纵向扩展,所以你也可以学习一些更新工具和最佳实践。

1.9K30

AngularDart 4.0 高级-结构指令 顶

{{hero.name}} 没有方括号。 没有圆括号。 只要*ngIf设置为一个字符串。...NgIf案例研究 NgIf是最简单的结构指令,也是最容易理解的。 它需要一个布尔表达式并使DOM的整个块出现或消失。... ngIf指令不会隐藏CSS元素。 它从DOM中物理添加和删除它们。 使用浏览器开发人员工具确认事实,以检查DOM。 ? 顶部段落在DOM中。...但是如果没有一个令人信服的理由让他们保持身临其境,你应该首先去除用户看不到的DOM元素,并用像NgIf这样的结构指令来恢复未使用的资源。 这些相同的考虑适用于每个结构指令,无论是内置还是定制。...这些形式都没有实际呈现。 只有最终产品在DOM中结束。 ? Angular在实际渲染过程中消耗了内容,并用诊断注释替换了。

16K20

AngularDart4.0 指南- 模板语法二 顶

当用户进行更改时,将引发输入事件,绑定在包含DOM事件对象$event的上下文中执行语句。 要更新name属性,可以通过路径$event.target.value来检索已更改的文本。...当指令没有合适的宿主元素时如何对元素进行分组。 如何编写自己的结构指令。 为什么你只能应用一个结构指令到一个元素。 本节介绍常见的结构指令: NgIf:有条件地从DOM中添加或删除元素。...NgIf  您可以通过向该元素应用NgIf指令(称为宿主元素)来添加或移除DOM中的元素。 在此示例中,将指令绑定到条件表达式,如isActive。...你知道这一点,因为每个英雄的ID没有改变。 但是Angular只能看到新的对象引用列表。 它别无选择,只能拆除旧的DOM元素并插入所有新的DOM元素。...NgSwitchCase在其绑定值等于交换机值时将其元素添加到DOM。 当没有选择NgSwitchCase时,NgSwitchDefault将其元素添加到DOM

29.9K20
领券