用ngif 多次判斷 Expression has changed after it was checked


昨天遇到一個問題 ,用ng

Expression has changed after it was checked

  

查了一下說在angular2中,這個錯誤只會在dev開發模式下出現,在pro發布版本中不會出現,通過enableProdMode()可以控制 
在組件中增加這段代碼可以去掉這個檢查,但是不建議這么做。

import {enableProdMode} from '@angular/core';
enableProdMode();

 報錯原因是angular4 的一種機制吧。

在dev模式下,額外增加了一次變化檢測,在第一輪變化檢測周期結束后,會立即進行第二輪變化檢測,對比兩次檢測值,如果不相同,則認為是變化檢測引起的。

這個錯誤經常出現在組件通信時,在輸入綁定中(set input,ngOnChanges等等,函數或getter等)修改了其他成員變量導致的,這類函數必須沒有副作用。

這句必須添加到main.ts 

此處使用該方法前一定要先 import 它,就像 platformBrowserDynamic() 方法一樣。

注意,上述代碼要放在 platformBrowserDynamic() 方法前使用,否則會報錯:

Error: (SystemJS) Cannot enable prod mode after platform setup.
OK,現在已經知道如何切換工作模式了,現階段還是使用開發模式吧。

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM