import { Injectable } from '@angular/core'
-import { FormBuilder, FormControl, FormGroup, ValidatorFn } from '@angular/forms'
+import { AsyncValidatorFn, FormArray, FormBuilder, FormControl, FormGroup, ValidatorFn } from '@angular/forms'
import { BuildFormArgument, BuildFormDefaultValues } from '../form-validators/form-validator.model'
import { FormReactiveErrors, FormReactiveValidationMessages } from './form-reactive'
form.addControl(
name,
- new FormControl(defaultValue, field?.VALIDATORS as ValidatorFn[])
+ new FormControl(defaultValue, field?.VALIDATORS as ValidatorFn[], field?.ASYNC_VALIDATORS as AsyncValidatorFn[])
)
}
}
+ updateTreeValidity (group: FormGroup | FormArray): void {
+ for (const key of Object.keys(group.controls)) {
+ const abstractControl = group.controls[key] as FormControl
+
+ if (abstractControl instanceof FormGroup || abstractControl instanceof FormArray) {
+ this.updateTreeValidity(abstractControl)
+ } else {
+ abstractControl.updateValueAndValidity({ emitEvent: false })
+ }
+ }
+ }
+
private isRecursiveField (field: any) {
return field && typeof field === 'object' && !field.MESSAGES && !field.VALIDATORS
}