public markFormDirty(form) {
this.markGroupDirty(form);
}
private markControlDirty(formControl: FormControl, key?) {
formControl.markAsDirty();
formControl.updateValueAndValidity();
if (formControl.invalid) {
console.log(`invalid key: ${key}`);
}
}
private markGroupDirty(formGroup: FormGroup) {
Object.keys(formGroup.controls).forEach(key => {
switch (formGroup.get(key).constructor.name) {
case 'FormGroup':
this.markGroupDirty(formGroup.get(key) as FormGroup);
break;
case 'FormArray':
this.markArrayDirty(formGroup.get(key) as FormArray, key);
break;
case 'FormControl':
this.markControlDirty(formGroup.get(key) as FormControl, key);
break;
}
});
}
private markArrayDirty(formArray: FormArray, key) {
formArray.controls.forEach(control => {
switch (control.constructor.name) {
case 'FormGroup':
this.markGroupDirty(control as FormGroup);
break;
case 'FormArray':
this.markArrayDirty(control as FormArray, key);
break;
case 'FormControl':
this.markControlDirty(control as FormControl, key);
break;
}
});
}
网友评论