Angular Material的mat-error显示单向数据绑定

时间:2018-01-19 21:37:55

标签: html angular typescript angular-material

即使声明并定义了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>

1 个答案:

答案 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>

但是如果你有很多输入字段会很难看