Пользовательский валидатор Angular5 для минимальной даты

Я пытаюсь создать валидатор для ввода даты.

поэтому я написал этот фрагмент кода, но он не работает должным образом!

export class CustomValidators {
  static dateMinimum(date: string): ValidatorFn {
    return (control: AbstractControl): ValidationErrors | null => {
      if (control.value == null) {
        return null;
      }

      const controlDate = moment(control.value, FORMAT_DATE);

      if (!controlDate.isValid()) {
        return null;
      }

      const validationDate = moment(date);

      return controlDate.isAfter(validationDate) ? null : {
        'date-minimum': {
          'date-minimum': validationDate.format(FORMAT_DATE),
          'actual': controlDate.format(FORMAT_DATE)
        }
      };
    };
  }
}

я получаю эту ошибку

ERROR Error: Expected validator to return Promise or Observable.at toObservable (forms.js:749)

Я действительно не знаю, что не так... Я нашел много примеров того, как создавать собственные валидаторы без параметров, но ни одного с параметрами...

Мне нужно использовать валидаторы следующим образом:

    this.projectForm = this.builder.group({
      date: ['', Validators.required, CustomValidators.dateMinimum('2018-12-12')],
    });

person Vince    schedule 14.03.2018    source источник
comment
не могли бы вы .... поделиться своим образцом   -  person Kumaresan Sd    schedule 25.07.2018


Ответы (1)


все нормально работало....

проблема была в самом создании формы...

date: ['', Validators.required, CustomValidators.dateMinimum('2018-12-12')],

должно быть

date: ['', [Validators.required, CustomValidators.dateMinimum('2018-12-12')]],
person Vince    schedule 14.03.2018