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'时异步“,这在这种情况下是不可能的。我也认为你需要手动调用变更检测。 –