2017-06-14 75 views
3

我很好奇如何* ngif工作:Angular 2+中* ngIf条件中的代码发生多少次火灾?

<img *ngif="isMediaMessage(message) === 'audio'" src="assets/img/audio1" /> 

1) 当我把一个控制台isMediaMessage函数内部,控制台打印出无限;我想知道它为什么这样做。是因为消化循环?脏检查?我正在读更多这些。

2)如果我想减少渲染时间,我应该使用较少的数据绑定吗?

3)你们会说这个article是最新的吗?

This可能是相关的。

+1

您的链接是相关的,但它是用于Angular 1和'* ngIf'是一个Angular 2+的东西。该功能将在每个更改检测周期中运行。 – Pace

+0

阅读[这篇文章](https://blog.thoughtram.io/angular/2016/02/22/angular-2-change-detection-explained.html)而不是在#3 – Pace

+0

而在开发模式之后将运行另一个周期。 – Igor

回答

4

这是关于digest循环/检测周期和页面上的手表。

每当页面发生变化并且脏检查队列正在运行时,检测机制运行时将重新评估ngIf,并且您的代码/条件会被触发。