что проверяется первым?FormGroup или FormControls в реактивных формах? - PullRequest
0 голосов
/ 01 декабря 2018

Рассмотрим форму с двумя элементами управления датой.Например, 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...