FormControl:手动设置错误(并触发更新视图)

时间:2018-04-17 13:26:22

标签: angular angular-reactive-forms

我正在尝试使用被动形式实现自定义异步验证(内置的无效验证因为它触发了太多请求(当另一个字段发生更改时)。

因此我实施了这样的手动方式:

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,所以它只会在更改时触发视图更新。 我没有找到任何方法手动更新视图。

有没有人有解决方案?

0 个答案:

没有答案