Рассмотрим форму с двумя элементами управления датой.Например, FirstDate и LastDate.Форма должна быть разработана с использованием реактивных форм.Оба элемента управления имеют 3 валидаций каждый.1) Дата должна быть обязательной.2) Дата не должна быть раньше 30 дней с текущего дня.3) FirstDate должен быть до LastDate.
Я пытаюсь обработать первые две проверки с помощью проверок formcontrol.И последнее, т.е. проверка сравнения с проверкой FormGroup.
datesFormGroup: this.formBuilder.group(
{
firstDateCtrl: ['', [Validators.required,validateRange]],
lastDateCtrl: ['', [Validators.required,validateRange]],
},
{ validator: validateDateForm }
)
Я проверяю formControl, чтобы проверить, не были ли выбранные даты раньше 30 дней, используя пользовательский валидатор validateRange
.
validateRange(dateControl: AbstractControl){
if(!dateControl.errors){
....
dateControl.setError({range:true})
}
}
Более тогоУ меня есть специальный валидатор validateDateForm
для сравнения обеих дат и проверки того, что первая дата предшествует последней дате.
validateDateForm((dateForm: FormGroup) ){
if(!dateControl.errors){
...
....
...
check and set error
dateGroup.controls.firstDate.setErrors({ compare: true });
}
}
После отладки этого фрагмента я обнаружил, что dateControl в validateRange
имеет ошибку сравнения.Означает ли это, что validateDateForm
выполняется до validateRange
.
Выполняется ли валидация FormGroup до валидаций FormControl?