如何理解自定义验证器中setErrors和return的区别?

发布于 2022-09-06 05:31:39 字数 476 浏览 4 评论 0

譬如这一段验证代码:

validate(control: AbstractControl): { [error: string]: any } {
    let val = control.value;// 获取输入框的值    
    let flag=/^1(3|4|5|7|8)\d{9}$/.test(val);
    console.log(flag);
    if(flag){
        // 清空错误信息
        control.setErrors(null);
        return null
    }else{
        // 设置错误信息
        control.setErrors({mobileValidator:false});
        return {mobileValidator:false};
    }
}

这里return的东西和setErrors设置的东西分别是什么?怎么用?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

血之狂魔 2022-09-13 05:31:39

FormControl.setErrors({key:value})设置的表单控件错误信息,可以通过FormControl.errors[key]获取,如果没有error,就返回null。

return的话,return null代表表单控件验证通过,你上面的代码可以这么写:

return flag? null : { mobileValidator: false};

setErrors()这个设置与否其实没多大关系,你知道你返回的错误信息是什么就好,就是说你也可以通过FormControl.errors[key]获取的,这个key就是上面的mobileValidator,value可以是任意类型数据,你上面的false,也可以设成对象,字符串等。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文