我正在Angular2 RC5中构建一个模型驱动的表单。在这种形式中,我有一个选项,用户可以通过输入一些信息从文件或手动添加多个用户。该文件将在JavaScript中解析,数据将显示在表格中。为了验证表单,我创建了一个类似于我发现here的构建的验证器。以下是我的实施示例:
import {AbstractControl, ValidatorFn} from "@angular/forms";
export class StringValidators {
static isEmail(options: Object): ValidatorFn {
return (control: AbstractControl): {[key: string]: any} => {
var val: string = control.value;
// ... cut ...
var regEx = new RegExp(`^${exp}$`);
return regEx.test(val)?null:{"isEmail":true};
};
}
}
然后我可以将验证器添加到FormControl
,如下所示:
userEmail = new FormControl("", [StringValidators.isEmail]);
但是,这仅适用于文本输入字段。我还有从文件中添加多个用户的方案。我不太明白如何在FormControl类中调用验证器。我唯一想让它可重用的想法是将我的验证逻辑提取到一个单独的类,然后为Angular构建一个包装器。
这是实现这一目标的最佳方法吗?还是我过于复杂了?