即使声明并定义了mat-form-field
,以下<mat-error>
也会显示someValue
。
<mat-form-field>
<input [value]="someValue" [formControl]="someFormControl"/>
<mat-error *ngIf="someFormControl.hasError('required')">Required</mat-error>
</mat-form-field>
我希望能够使用someValue
预填充输入而不显示<mat-error>
。
答案 0 :(得分:1)
FormControl的架构无法“自动”完成......从触摸组件的那一刻起,formcontrol就会检查它......(这就是它的美丽......)
但你可以通过多种方式规避它......就像这样:
*。component.ts
someFormControl = new FormControl('', [Validators.required, Validators.email]);
someValue: String = 'aValue';
activated: Boolean = false;
ngOnInit() {
this.someFormControl.valueChanges.subscribe((observer) => {
this.activated=true;
})
}
*。component.html
<mat-form-field>
<input matInput [value]="someValue" [formControl]="someFormControl"/>
<mat-error *ngIf="someFormControl.hasError('required') && activated">Required</mat-error>
</mat-form-field>
但是如果你有很多输入字段会很难看