Async Validator Throw Ожидаемый валидатор вернет Promise или Observable

Я попытался подтвердить пароль значением пароля. Я сделал в соответствии со стандартом валидатора Async. Но мне интересно, что это не работает, и выдает мне следующую ошибку. Подскажите пожалуйста, как решить эту ошибку.

Ожидается, что валидатор вернет Promise или Observable.

Вот мой код.

Вызов валидаторов:

cPass: ['', Validators.compose([
  Validators.required, 
  Validators.maxLength(32),
  Validators.minLength(10)
]),
  this.validPassword.bind(this)
]

Пользовательская функция проверки:

validPassword(control: AbstractControl) {            
  const isEqual = Observable.of(this.password == control.value);
  return isEqual ? { valid : true } : null;         
}

person Kevin - Dhinesh babu    schedule 08.07.2017    source источник


Ответы (1)


Ошибка говорит сама за себя:

Ожидается, что валидатор вернет Promise или Observable.

Вы возвращаете object|null своим function.

Просто измените его на:

validPassword(control: AbstractControl) {
  return observableOf('12345678910' === control.value).pipe(
    map(result => result ? { invalid: true } : null)
  );
}

STABKBLITZ DEMO

person developer033    schedule 09.07.2017