Angular 4.0.0 rc.1 于 2017 年 2 月 24 日发布
表单表单有两个变化
:增加了使用浏览器原生验证的选项和 Angular 表单
表单:引入 AsyncValidator 接口
如何为表单使用 AsyncValidator 接口以及我们如何启用浏览器的原生验证?
问问题
262 次
1 回答
0
你会像使用普通的一样使用它Validator
。唯一的区别是,您不是返回一个ValidationErrors
对象,而是返回一个解析为该ValidatorErrors
对象的 Promise 或 Observable。
这是一个例子:
this.formBuilder.group({
name: ['', [ Validators.required ]],
email: ['', [ Validators.required ]]
});
这是一个带有必填字段的简单注册表单。现在假设您要调用您的服务器以确保电子邮件尚未在使用中。
重复电子邮件.ts
export class DuplicateEmail {
constructor(private backendService: BackendService) {}
validate(c: AbstractControl): Observable<ValidationErrors> {
return this.backendService.isDuplicateEmail(c.value)
.map(response => response ? { duplicateEmail: true } : null);
}
}
form.component.ts
this.formBuilder.group({
name: ['', [ Validators.required ]],
email: ['', [ Validators.required ], [ duplicateEmail ]]
});
恭喜,您现在已经实现了一个异步验证器!
于 2017-06-26T18:37:07.743 回答