Angular 2:应用远程验证错误以形成

时间:2016-11-06 20:50:55

标签: forms validation angular

在向我的后端提交表单时,我可能会收到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);
    });
}

这似乎部分起作用,问题是我的控件没有获得无效状态,除非我通过单击输入来聚焦控件。

我做错了什么或是错误吗?我所有的谷歌搜索似乎都证实我正确地做到了。

任何输入应用

1 个答案:

答案 0 :(得分:0)

您可以重新实现适应活动表单样式的注册表单,您可以在其中执行表单输入的自定义验证,并通过返回表单的promises来更新解析promise,从而进行异步验证。 您可以查看Angular 2文档以实现反应式表单验证:Reactive Form Validation - Angular 2