我将 Material 用于表单,在发布数据后,我使用 ts 文件中的 form.reset()
函数重置了所有输入字段。此函数清除所有输入字段,但随后所有输入字段变为红色,因为它们全部被触摸且为空。
我怎样才能让它们在 ts 文件中保持不变?这是 html 代码:
<mat-form-field>
<mat-select [formControl]="environment" placeholder="Environment">
<mat-option *ngFor="let environment of environments" [value]="environment">
{{ environment }}
</mat-option>
</mat-select>
<mat-error *ngIf="environment.hasError('required')">
* Environment is <strong>required</strong>
</mat-error>
</mat-form-field>
这是ts代码:
this.http
.post(url, form.value.item, {
headers: new HttpHeaders().set('Content-Type', 'application/json')
})
.subscribe(data => {
form.reset();
},
err => {
console.log(err);
}
);
最佳答案
这是一个已知的 issue 强>。该问题中提出的一种解决方法是使用 ngForm
指令并使用该指令重置表单:
<form [formGroup]="myFormGroup" (ngSubmit)="save()" #myForm="ngForm">
组件:
@ViewChild('myForm') myForm;
// ...
.subscribe(data => {
this.myForm.resetForm();
}
关于javascript - Angular 2 Material如何设置一个字段不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48439729/