angular的formGroup的校驗觸發


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的賦值校驗

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM