web-dev-qa-db-fra.com

Async Validator Throw Attendu que le validateur renvoie Promise ou Observable

J'ai essayé de confirmer le mot de passe avec une valeur de mot de passe. J'ai fait selon la norme de validation Async. Mais je me demande si cela ne fonctionne pas et me lance l'erreur suivante. Veuillez indiquer à quiconque comment résoudre cette erreur.

Le validateur devrait retourner Promise ou Observable.

Voici mon code.

Validateurs d'appels:

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

Fonction de validation personnalisée:

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

L'erreur parle d'elle-même:

Le validateur devrait retourner Promise ou Observable.

Vous revenez object|null dans votre function.

Changez-le simplement en:

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

STABKBLITZ DEMO

17
developer033