Angular2解决方案,用于验证具有验证类或接口的表单

时间:2017-09-12 12:22:26

标签: angular validation angular2-forms

我需要在单独的部分中使用多次验证类,假设我有很多元素的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>

但我需要的是拥有一个验证类,其中包含表单的所有验证规则并使用它。

0 个答案:

没有答案