我正在FormGroup
通过patchValue从我的组件更新Reactive 控件值.
例如:
this.myForm.patchValue({incidentDate:'2016-09-12');
Run Code Online (Sandbox Code Playgroud)
这很好用并触发一个valueChanges
事件,但是这个控件的dirty
属性仍然存在false
.
我需要incidentDate
控件,dirty
所以我的验证逻辑知道对这个控件运行.
如何从组件更新控件的值并指示它是否脏?
这是我的验证逻辑:
onValueChanged(data?: any) {
if (!this.myForm) {
return;
}
const form = this.myForm;
for (const field in this.formErrors) {
// clear previous error message (if any)
this.formErrors[field] = '';
const control = form.get(field);
if (control && control.dirty && !control.valid) {
const messages: any = this.validationMessages[field];
for (const key in control.errors) {
this.formErrors[field] += messages[key] + ' ';
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
Har*_*inh 37
我经常这样做:
this.formControl.markAsDirty()
Run Code Online (Sandbox Code Playgroud)
或者在你的情况下它可能是:
this.myForm.get('incidentDate').markAsDirty()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19951 次 |
最近记录: |