如何理解自定义验证器中setErrors和return的区别?
譬如这一段验证代码:
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
FormControl.setErrors({key:value})设置的表单控件错误信息,可以通过FormControl.errors[key]获取,如果没有error,就返回null。
return的话,return null代表表单控件验证通过,你上面的代码可以这么写:
setErrors()这个设置与否其实没多大关系,你知道你返回的错误信息是什么就好,就是说你也可以通过FormControl.errors[key]获取的,这个key就是上面的mobileValidator,value可以是任意类型数据,你上面的false,也可以设成对象,字符串等。