我正在以角度2构建模型驱动形式,我希望特定字段的范围验证在1-1000之间,并且还可以具有2000和2001的值,
我试着把它写成:
this.configForm.controls["field"].setValidators(Validators.compose([Validators.required,CustomValidators.equal(2000),CustomValidators.equal(2001), CustomValidators.range([1,1000])]));
但它不起作用..
怎么做?
感谢。
答案 0 :(得分:1)
如果您使用的是FormBuilder,请考虑实施一个验证一组控件而不是单个控件的组验证器:
FormBuilder的group
方法的第二个参数允许您指定组验证器:
this.fb.group({
field1: [''],
field2: [''],
},
{
validator: (c:FormGroup) => {
return {'whateveryouwant': true};
}
}
);
如果您需要清除字段验证标志:
let field1 = c.get('field1');
field1.setErrors(null);
答案 1 :(得分:0)
根据FormControl API,
没有setValidators()
功能。
您可能需要添加新控件:
this.configForm.controls["field"] = new FormControl('',Validators.compose([
Validators.required,CustomValidators.equal(2000),
CustomValidators.equal(2001),
CustomValidators.range([1,1000])]
));