Angular4 如何在angular 4.0.0 rc.1中为表单使用AsyncValidator接口

Angular4 如何在angular 4.0.0 rc.1中为表单使用AsyncValidator接口,angular4,Angular4,Angular 4.0.0 rc.1于2017年2月24日发布 表单有两个更改 表单:添加了使用浏览器本机验证和角度表单的选项 表单:引入异步验证程序接口 如何为表单使用AsyncValidator接口,以及如何启用浏览器的本机验证?您可以像使用常规验证程序一样使用它。唯一的区别是,不是返回ValidationErrors对象,而是返回一个承诺或可观察的,它解析为ValidatorErrors对象 以下是一个例子: this.formBuilder.group({ 名称:['',[Valida

Angular 4.0.0 rc.1于2017年2月24日发布
表单有两个更改
表单:添加了使用浏览器本机验证和角度表单的选项
表单:引入异步验证程序接口

如何为表单使用AsyncValidator接口,以及如何启用浏览器的本机验证?

您可以像使用常规
验证程序一样使用它。唯一的区别是,不是返回
ValidationErrors
对象,而是返回一个承诺或可观察的,它解析为
ValidatorErrors
对象

以下是一个例子:

this.formBuilder.group({
名称:['',[Validators.required]],
电子邮件:[''[Validators.required]]
});
这是一个带有必填字段的简单注册表单。现在让我们假设你想打电话给你的服务器,以确保电子邮件尚未被使用

重复电子邮件.ts

导出类重复邮件{
构造函数(专用后端服务:后端服务){}
验证(c:AbstractControl):可观察{
返回此.backendService.isDuplicateMail(c.value)
.map(response=>response?{duplicateEmail:true}:null);
}
}
form.component.ts

this.formBuilder.group({
名称:['',[Validators.required]],
电子邮件:['',[Validators.required],[duplicateEmail]]
});
恭喜,您现在已经实现了一个异步验证器