Angular 4禁用FormControl不检查或显示验证错误

时间:2018-06-05 07:01:30

标签: javascript angular typescript angular4-forms

我将FormControl对象绑定到input元素。

<input matInput [formControl]="nameControl">

初始化如下

this.nameControl = new FormControl({value: initValue, disabled: true}, [Validators.required, UniqueValueValidator(uniqueValues)]);

禁用FormControl时,不会检查是否有任何错误。

问题是如何禁用控件并仍然显示错误。

1 个答案:

答案 0 :(得分:0)

当表单控件为valid时,无法获得invaliddisabled状态。

表单控件有四种状态:pendingdisabledvalidinvalid,并且只保留其中一种状态。 因此,当表单控件的状态为disabled时,它只会是disable,而不是valid,而不是invalid,请参阅 docs < /强>

从技术上讲,您可以模拟验证过程,但基于input.hasError('...')invalid / valid的任何内容都无法正常工作。

<input matInput [formControl]="nameControl">
<div *ngIf="form.get('nameControl').disabled && form.get('nameControl').value === ''">
  field is required.
</div>