5

J'ai essayé de confirmer le mot de passe avec la valeur du mot de passe. J'ai fait selon la norme de validateur Async. Mais je me demande si ça ne marche pas et me lancer l'erreur suivante. S'il vous plaît dites à quelqu'un comment résoudre cette erreur.Async Validator Throw Expéditeur attendu pour renvoyer Promise ou Observable

Le validateur attendu pour renvoyer la promesse ou observable.

Voici mon code.

Appel validateurs:

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

Validation personnalisée funciton:

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

Répondre

8

L'erreur parle pour lui-même:

validateur prévue pour retourner Promise ou Observable.

Vous renvoyez object|null dans votre function.

changer juste à:

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

STABKBLITZ DEMO