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的赋值校验
查看更多关于angular的formGroup的校验触发的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did222755