angular material 中form表单提交时赋值,无法触发input输入框的样式,使用给FormGroup赋值的方式

onSubmit() {
    Object.values(this.formGroup.controls).forEach(i=>{
      i.marksAsDirty();
    })
    this.formGroup.patchValue(this.formGroup.getRowValue())
    if(this.formGroup.invalid){
      return;
    }
  }
// 需要在app.module.ts 中添加
import { errorStateMatcher, showOnDirtyErrorStateMatcher } from '@angular/material' providers: [ { provide: errorStateMatcher, useClass: showOnDirtyErrorStateMatcher } ],

-------------------------------------------------------------------------------------------------------

对于单个的formControl的操作赋值触发校验的情况下,可以使用如下方式:

this.formControl.setValue(''); // 只有此行可以触发FormControl的invalid是true,但是结合material 的mat-form-field无法触发<mat-error>的错误显示
this.formControl.markAsDirty();
this.formControl.updateValueAndValidity();
// 这两行等价于上面formGroup的赋值校验

  

相关文章:

  • 2022-12-23
  • 2022-02-09
  • 2021-12-06
  • 2021-11-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-09
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-05-18
  • 2022-12-23
  • 2021-10-07
  • 2021-08-14
  • 2021-12-26
相关资源
相似解决方案