【发布时间】:2019-02-22 14:44:21
【问题描述】:
我需要弄清楚如何在我的响应式表单中添加第二个验证器。我已将“AvailabilityBalanceValidator”添加到初始化行的 patchValues() 中。但是只有第一个验证器在工作,为什么第二个验证器是 AvailabilityBalanceValidator() 不工作。请查看此链接CHECK THIS LINK
patchValues() {
const materialForms = this.orders
.reduce((acc, i) => [...acc, ...i.materials], [])
.map(x => {
return (this.fb.group({
checkbox_value: [null],
material_id: [{ value: x.id, disabled: true }],
material_name: x.name,
available_qty: 10,
quantity: [null]
}, [this.subFormValidator.bind(this), { validator: this.AvailabilityBalanceValidator('available_qty', 'quantity') }]));
});
this.myForm.setControl('rows', this.fb.array(materialForms));
this.myForm.setValidators([this.formValidator.bind(this)])
}
AvailabilityBalanceValidator(campo1: string, campo2: string) {
return (group: FormGroup): { [key: string]: any } => {
const balance = group.controls[campo1];
const quantity = group.controls[campo2];
if (balance.value < quantity.value) {
return {
out: true
};
}
};
}
【问题讨论】:
标签: angular angular6 angular-reactive-forms angular-forms angular4-forms