[英]Why does Angular 2 not detect change?
我有一個類似的代碼和錯誤,因為在檢查了ngAfterViewInit()
中我正在更改變量值的位置后 , Expression ___已經發生了變化。
答案之一https://stackoverflow.com/a/35243106/1460595表明通過調用來手動觸發變化檢測detectChanges()
的方法ChangeDetectorRef
,它的工作原理。
但是,當Angular 2應該處理更改時,為什么我們必須手動處理更改?
生命周期鈎子和變化檢測之間是否存在某種關系?
問題是由Angular在開發模式中完成的每個常規操作之后的第二次更改檢測運行引起的,以檢查模型是否已穩定,否則這是可能錯誤的指示。
在您的情況下,問題是,第一次更改檢測運行調用生命周期回調ngAfterViewInit
。 如果它更新了modelm,則第二次更改檢測運行拋出。 通過在更新后運行手動更改檢測,Angular將記住其值記錄更新,第二張CD運行將不會通知更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.