我将FormControl
对象绑定到input
元素。
<input matInput [formControl]="nameControl">
初始化如下
this.nameControl = new FormControl({value: initValue, disabled: true}, [Validators.required, UniqueValueValidator(uniqueValues)]);
禁用FormControl
时,不会检查是否有任何错误。
问题是如何禁用控件并仍然显示错误。
答案 0 :(得分:0)
当表单控件为valid
时,无法获得invalid
或disabled
状态。
表单控件有四种状态:pending
,disabled
,valid
和invalid
,并且只保留其中一种状态。
因此,当表单控件的状态为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>