我需要在单独的部分中使用多次验证类,假设我有很多元素的FormA,然后我在多个部分使用相同的表单,所以为了验证我想要一个验证类FormA然后当我想在任何地方验证这个表单时,我应该有一个验证类,以避免同一表单的不同验证规则,并具有此表单的唯一规则。 我搜索和发现的是为每个元素使用验证类,然后使用该类,如下所示:
import {FormControl} from '@angular/forms';
import {Directive,forwardRef} from '@angular/core';
import {NG_VALIDATORS} from '@angular/forms';
export function validateZip(c: FormControl) {
let ZIP_REGEXP:RegExp = new RegExp('[A-Za-z]{5}');
return ZIP_REGEXP.test(c.value) ? null : {
validateZip: {
valid: false
}
};
}
@Directive({
selector: '[validateZip][ngModel],[validateZip][formControl]',
providers: [
{
provide: NG_VALIDATORS, useExisting: forwardRef(() =>
ZipValidator), multi: true
}
]
})
export class ZipValidator {
validator: Function = validateZip;
validate(c: FormControl) {
return this.validator(c);
}
}
和表单使用此验证:
<form>
<input type="text" name="zip" ngModel validateZip>
</form>
但我需要的是拥有一个验证类,其中包含表单的所有验证规则并使用它。