Поскольку уже есть принятый ответ, я могу предложить менее добавленные строки там.
Это немного известная ошибка Material
, в качестве обходного пути вы можете добавить ElementReference
к вашему тегу form
#f="ngForm"
:
<form [formGroup]="quickFileForm" (ngSubmit)="saveQuickFileForm()" #f="ngForm">
Затем добавьте@ViewChild
декоратор для вашей части TS, который ссылается на тег в вашей форме:
import { Component, ViewChild } from '@angular/core';
import { FormGroup, FormControl, Validators } from '@angular/forms';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
group = new FormGroup({
select: new FormControl(null, Validators.required),
input: new FormControl()
});
@ViewChild('f') myForm;
....
....
}
Не забудьте импортировать его из @angular/core
выше.Затем просто добавьте:
this.myForm.resetForm();
к вашему методу:
submit() {
if(this.group.valid) {
const obj = new MyObj();
Object.assign(obj, this.group.value);
this.survey.push(obj);
this.myForm.resetForm(); // <-- Here you add it.
return;
}
alert('not valid, try again')
}