2017-06-14 91 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,並且您的代碼/條件會被觸發。