Ich bin Angular 4 in meinem Projekt anwenden, und ich habe Probleme mit benutzerdefinierten Validierung mit HTTP-Anfrage.Wie benutzerdefinierte Async-Validator in Angular4 zu implementieren
ich diesen auch How to implement Custom Async Validator in Angular2
versuchen Aber es in meinem Projekt nicht funktioniert.
Hier ist, was ich bisher getan habe:
AbwartenValidierung:
userName: ['', [Validators.required, Validators.minLength(3), this.validateUserName.bind(this)]]
Wertänderungen Ereignis:
let userNameControl = this.individualForm.get('userName');
userNameControl.valueChanges.subscribe(value => {
this.setErrorMessagesForUserNameControl(userNameControl)
}
);
Validierungsfunktion:
validateUserName(control: FormControl): Promise<any> {
let promise = new Promise<any>(
(resolve, reject) => {
if (this.oldUserNameForCheck != undefined) {
this._individualUpdateService.isUserNameExisting(this.oldUserNameForCheck, control.value).subscribe(
(res) => {
if (res.isUserNameExisting) {
console.log("existing");
resolve({'existing': true});
} else {
console.log("NOT existing");
resolve(null);
}
},
(error) => {
console.log(error);
}
);
} else {
resolve(null);
}
}
);
return promise;
}
Ich versuche nur, den Benutzernamen zu validieren, indem Sie es an Back-End senden.
Wie Sie sehen können, gibt es eine Nachricht für "erforderlich", "minlength", jene Arbeit in Ordnung. Aber die Nachricht für die benutzerdefinierte Validierung ist nicht ganz klar. Ich schätze Ihre Hilfe, Dank fortschrittlichen :)
Danke für Ihre Hilfe, aber es funktioniert nicht. Hier ist ein Protokoll auf der Konsole ausgegeben: https://www.dropbox.com/s/19acvswgf1951s9/2017-04-19_160732.jpg?dl=0 –
Ich tat dies: Benutzername: [ ‚‘, [Validatoren .erforderlich, Validators.minLength (3)], [this.validateUserName.bind (this)]], –