I am updating a Reactive FormGroup
control value from my component via patchValue.
Ex:
this.myForm.patchValue({incidentDate:'2016-09-12');
This works great and triggers a valueChanges
event, however this control's dirty
property is still false
.
I need the incidentDate
control to be dirty
so my validation logic knows to run against this control.
How do I update the value of a control from my component AND indicate that it is dirty?
Here is my validation logic:
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] + ' ';
}
}
}
}