5
[angular2 RC4 + @角/表格模塊]angular2窗體+異步驗證+ ChangeDetectionStrategy.OnPush =無視圖刷新?
我有使用含有FormGroup
OnPush
變化檢測的成分。 此表格包含一個FormControl
和一個async
驗證程序。
驗證完成後(不再更多pending
),視圖不刷新。 只有input
模糊事件使視圖刷新..
如果我刪除OnPush
更改檢測,它工作正常。
它是一個角度錯誤還是我做錯了什麼?
有了'OnPush',刷新視圖是觸發過當事件發生像點擊或輸入打字的組件中。在plunker中,當你開始輸入時會刷新視圖(出現'pending')。同步驗證工作正常..所以我不知道我是否可以認爲它像正常行爲或與異步驗證程序錯誤.. – bertrandg
好的,所以如果你仍然堅持在這種情況下使用OnPush,對於預期的行爲,你應該觸發手動更改檢測。 從'@ angular/core'添加'import {...,ChangeDetectorRef};'並在構造函數中注入它的實例。 在你的方法必須添加這樣的: '的setTimeout(()=> { 決心(空); this.changeRef.markForCheck();} ,500)' –
異步執行僅調用變化檢測在''使用'OnPush'時異步「,這在這種情況下是不可能的。我也認爲你需要手動調用變更檢測。 –