首页 文章

Angular 2:将远程验证错误应用于表单

提问于
浏览
3

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

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

我做错了什么或者它是一个错误?我所有的谷歌搜索似乎都证实我正确地做到了 .

任何输入appr

1 回答

  • 0

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

相关问题