查看: 39|回覆: 0

angular的formGroup的校验触发

[複製鏈接]

5

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2012-6-11
發表於 2019-9-2 09:55:00 | 顯示全部樓層 |閲讀模式

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的赋值校验

  



来源:https://www.cnblogs.com/lskzj/p/11444937.html
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部