在向我的后端提交表单时,我可能会收到http代码400的回复,表明验证失败。
我的后端回应例如:
{
"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);
});
}
这似乎部分起作用,问题是我的控件没有获得无效状态,除非我通过单击输入来聚焦控件。
我做错了什么或是错误吗?我所有的谷歌搜索似乎都证实我正确地做到了。
任何输入应用
答案 0 :(得分:0)
您可以重新实现适应活动表单样式的注册表单,您可以在其中执行表单输入的自定义验证,并通过返回表单的promises来更新解析promise,从而进行异步验证。 您可以查看Angular 2文档以实现反应式表单验证:Reactive Form Validation - Angular 2