2
プロジェクトでAngular 4を適用していますが、HTTPリクエストを使用してカスタム検証に問題があります。Angular4でカスタム非同期検証ツールを実装する方法
また、私はこのHow to implement Custom Async Validator in Angular2
を試してみてくださいしかし、それは私のプロジェクトでは動作しません。
検証結着:
userName: ['', [Validators.required, Validators.minLength(3), this.validateUserName.bind(this)]]
値の変化イベント:
let userNameControl = this.individualForm.get('userName');
userNameControl.valueChanges.subscribe(value => {
this.setErrorMessagesForUserNameControl(userNameControl)
}
);
検証機能:
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;
}
をここで
は、私がこれまで行ってきたものです私はちょうどバックエンドに送信することによってユーザー名の検証を試みます。
あなたが見ることができるように、 "必須"、 "MINLENGTH" のメッセージ、それらの作業罰金があります。しかし、カスタム検証のメッセージはあまり明確ではありません。私は本当に高度で、おかげであなたの助けに感謝:)
ありがとう、助けてもらえません。 コンソールにログが出力されます: https://www.dropbox.com/s/19acvswgf1951s9/2017-04-19_160732.jpg?dl=0 –
私はこれを行いました: userName:[''、[Validators .required、Validators.minLength(3)]、[this.validateUserName.bind(this)]]、 –