我正在尝试使用被动形式实现自定义异步验证(内置的无效验证因为它触发了太多请求(当另一个字段发生更改时)。
因此我实施了这样的手动方式:
public validateUniquePolicyNumber(formControl: FormControl): void {
const policyNumber = formControl.value;
if (policyNumber != null || policyNumber.length > 0 ) {
this.caseListService.validatePolicyNumber(policyNumber).subscribe( (res: any) => {
setTimeout(() => {
let error: ValidationErrors = (res && res.policyNumberExists) ? res : null;
formControl.setErrors(error);
});
});
}
}
现在当我调试formControl
时,我发现它无效,但它没有更新视图!只有当我进行焦点重新聚焦(具有相同的值)时,它才会在视图中将该字段标记为无效。
我认为这是因为formControl.updateOn
设置为change
,所以它只会在更改时触发视图更新。
我没有找到任何方法手动更新视图。
有没有人有解决方案?