>

폼에 머티리얼을 사용하고 데이터를 게시 한 후 모든 입력 필드를 form.reset() 로 재설정합니다.  ts 파일의 기능. 이 기능은 모든 입력 필드를 지우지 만 모든 입력 필드는 모두 터치되어 비어 있기 때문에 빨간색이됩니다.

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);
        }
    );


  • 답변 # 1

    이것은 알려진문제입니다. 이 문제에 제시된 한 가지 해결 방법은 ngForm 를 사용하는 것입니다.  지시어를 사용하여 양식을 재설정하십시오.

    <form [formGroup]="myFormGroup" (ngSubmit)="save()" #myForm="ngForm">
    
    

    구성 요소 :

    @ViewChild('myForm') myForm; 
    // ...
    .subscribe(data => {
      this.myForm.resetForm();
    }
    
    

    StackBlitz

  • 답변 # 2

    close() 를 사용해 볼 수 있습니다   mat-select 의 방법  API.

    mat-stepper 를 참조 할 수 있습니다   ViewChild 를 사용하여

    여기에 더 많은 방법이 있습니다. 이것이 도움이 되길 바랍니다!

  • 이전 Excel VBA 사용자 정의 정렬이 제대로 작동하지 않습니다
  • 다음 로열티 카드를 Android Pay에 저장