我有一個Angular2組件,它基於來自無頭CSM的數據呈現頁面片段。特別地,組件呈現使用模板這樣的頁腳:爲什麼即使沒有變化,我的Angular2模板的一小部分也會重新渲染?
<div class="footer">
<div class="row">
<div class="col s12 m6" *ngFor="let column of footer">
<div [innerHtml]="sanitizer.bypassSecurityTrustHtml(column)"></div>
</div>
</div>
</div>
this.footer
哪裏是包含HTML字符串的陣列的專用變量。 this.footer
設置在ngOnInit()
中。整個模板比這個大得多。
我的問題是這個模板的特定片段不斷重新呈現每隔1-2秒。這使得選擇頁腳中找到的聯繫人詳細信息成爲不可能,因爲選定的HTML節點被新的(相同的)節點替換,因此選擇被重置。
頁面的其餘部分以類似的方式呈現,但不表現出這個問題。如果我查看Chrome調試器中的元素,我們可以看到這個特定片段的<div>s
在被替換時閃爍。
我在記錄ngOnInit()
和ngOnChanges()
但在重新渲染過程中它們沒有運行。
我不知道是什麼原因造成的。
嗯....這是一個很好的小陷阱。顯然,即使參數相同,函數結果也是不同的實例。謝謝。 –
通常情況下,除非結果被緩存,並且函數返回緩存的結果。但是在這種情況下,你可以綁定到緩存,只有當參數發生變化時纔會調用函數。 –