angular-material2 - 如何清除角 Material 垫错误的验证错误

标签 angular-material2

添加值后,我尝试重置表单。

表单代码段

<form [formGroup]="addAttributeForm" fxLayout="column">
    <mat-form-field>
      <input matInput formControlName="title" placeholder="Title" required>
      <mat-error>This field is required</mat-error>
    </mat-form-field>
</form>

在组件
onSubmit(form: FormGroup) {
  // do work
  form.reset();
}

我观察到的是:
  • 表单值设置为空。
  • 但是,仍然会从mat-error中显示验证消息。
  • 我尝试了form.markAsPristine()form.markAsUntouched()并结合了所有这三个。

  • 如何重置表格,以免显示错误垫?

    最佳答案

    表单组没有关于是否已提交实际HTML表单的“知识”。它仅跟踪表单值/有效性/启用状态。因此,重置表单组不会重置值,但不会重置有关表单是否为submitted的任何状态。

    为此,您需要保留 FormGroupDirective 并在其上调用resetForm()

    表单代码段

    <form [formGroup]="addAttributeForm" fxLayout="column">
      <!-- ... -->
    </form>
    

    在组件
    @ViewChild(FormGroupDirective) formDirective: FormGroupDirective;
    
    onSubmit(form: FormGroup) {
      // do work
      this.formDirective.resetForm();
    }
    

    关于angular-material2 - 如何清除角 Material 垫错误的验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47182445/

    相关文章:

    html - 在右下角制作 Angular Material 2(版本 5.2.2)FAB

    angular - Angular 5中的分页索引号

    html - Angular 侧边栏与页面内容重叠

    Angular Material 2 : Fix for Multiline Error messages

    Angular Material 以编程方式更改选项卡标签

    html - 如何覆盖 angular2 中 md-input-container 的样式?

    Angular 5 如何在更改时显示/隐藏表单字段垫选择

    html - CSS loader/Progress spinner Material angular 2+

    drag-and-drop - 如果在 cdkDropList 中使用 *ngFor,Angular 拖放将不起作用

    Angular Material 2 表服务器端分页