Angular 4 FormGroup值匹配数组项

时间:2018-04-20 01:58:05

标签: angular

我想为我的表单组创建一个自定义验证函数,该函数验证国家/地区输入与我的国家/地区列表项的匹配。

这是我的国家/地区列表:

this.sharedService.getCountry().subscribe(res => {
  res.map(item => {
    this.countryList.push(item);
  });
});

我的表格是:

this.form = fb.group({
    country: new FormControl('', [Validators.required]),
});

1 个答案:

答案 0 :(得分:1)

您需要编写一个自定义验证器服务,检查输入如下,

function check_if_valid(value,array){
   if((alue){ 
       const isInArray = array.includes(value);
       return true;
   } else {
       return false;
   }
}

@Injectable()
export class ValidatorsService {

   public isInteger = (control:FormControl) => {
        return check_if_valid(control.value,yourarray);
   }

}

和组件

constructor(private _ValidatorsService: ValidatorsService){
    }

country: new FormControl('', [Validators.required,this._ValidatorsService.isInteger ]),