Ich versuche, einen Async-Validator in meinen reaktiven Formularen zu implementieren. Aber ich bekomme Fehler, bitte helfen Sie.Benutzerdefinierter Async-Validator in reaktiven Formularen Angular 2
Validator
import { AbstractControl } from '@angular/forms';
import { Observable } from 'rxjs';
export function validate(c: AbstractControl): Observable<{[key : number] : any}>{
console.log(c);
// return this.validateAgeObservable(c.value);
return this.validateAgeObservable(c.value).first();
}
function validateAgeObservable(age: number) {
return new Observable(observer => {
observer.next(age === 20 ? null : {asyncInvalid: true});
// observer.complete(); or this or .first();
});
}
Komponente
ngOnInit(){
this.user = new FormGroup({
....
age:new FormControl('',null,validate),
....
}
ich dieses folgende Fehlermeldung erhalten Bitte helfen
Wenn i Entfernen Sie den Async-Validator funktioniert es gut.
UPDATE
Nach richards Lösung funktioniert es, aber ich will es für Nummernfeld arbeiten, warum seine nicht funktioniert, wenn seine eine Zahl?
und noch eine Sache, die ich beim Laden der Seite bemerkte der Validator heißt dreimal warum ist das so?
Die 'ValidationErrors' haben einen Schlüssel vom Typ * string *, nicht * number *. Ich weiß nicht, ob sich das ändern wird, oder nicht. –