[angular2 RC4 @ angular / forms module]
我有一个使用包含FormGroup的OnPush更改检测的组件.
此表单包含一个带有异步验证器的FormControl.
验证完成后(不再有待处理),视图不会刷新.
只有输入模糊事件才能刷新视图.
如果我删除OnPush更改检测,它可以正常工作.
这是一个有角度的错误还是我做错了什么?
解决方法
看起来你错过了使用ChangeDetectionStrategy.OnPush的目标.
您没有任何@Input属性或|组件上的异步管道,但它只是用这个策略更新视图状态 – 当Input属性更新时(理想情况下是一个新对象).所以只是摆脱当前的情况
UPDATE
如果在这种情况下仍然坚持使用OnPush,对于预期的行为,您应该手动触发更改检测.
从’@ angular / core’添加import {…,ChangeDetectorRef};并在构造函数中注入它的实例.
uniqueNameAsync(control: FormControl): Promise<{[key: string]:any}>{ return new Promise(resolve => { setTimeout(() =>{ resolve(null); this.changeRef.markForCheck(); },500); }); }