1
バックエンドにフォームを送信するときに、検証に失敗したことを示すHTTPコード400の応答が表示されることがあります。角2:フォームにリモート検証エラーを適用する
私のバックエンドは、たとえばで応答:
{
"status":"fail",
"data":{
"email":[
"Email address already in use"
]
}
}
私は電子メールのフィールドを無効にし、応答に基づいて、エラーメッセージを、設定したいと思います。
私が試したことはこれです:これは、部分的に動作しているよう
if (err && err.status === 400) {
const response = err.json();
Object.keys(response.data).forEach(key => {
const messages = response.data[key];
this.registerForm.get(key).setErrors({
remote: messages[0] // Set just the first message
}, true);
});
}
、問題は、私はクリックしてフォーカス制御をしない限り、私のコントロールが無効な状態を取得しないことです入力。
何か間違っているのですか、それともバグですか?私のすべてのグーグルは私が正しくそれをやっていることを確認しているようです。
あなたは、フォーム入力のカスタム検証を実行し、約束を解決する上で更新するために、形成するために、約束を返すことによって、非同期検証を行うことができます反応型のスタイルを、適応登録フォームを再実装することができます