在FormControl之外使用Angular2验证器

时间:2016-08-30 15:42:14

标签: angular typescript

我正在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构建一个包装器。

这是实现这一目标的最佳方法吗?还是我过于复杂了?

0 个答案:

没有答案