我以这种方式创建了验证器:
static repeatedPerson(): ValidatorFn {
return (array: FormArray) => {
if (array && array.length > 0) {
// I do some logic here
if (//AnyCondition) {
return {RepeatedPerson: true};
}
}
return {};
};
}
然后将验证器添加到formArray:
this.persons.setValidators(repeatedPersonNumber());
我尝试了其他方式,例如人:
new FormArray([], repeatedPersonNumber())
new FormArray([], repeatedPersonNumber)
this.persons.setValidators(repeatedPersonNumber);
我将断点放入了repeaterPerson验证器中,只调用了一次即可返回该函数。但是验证本身永远不会触发...
有什么想法吗?
预先感谢
答案 0 :(得分:1)
对于语句this.persons.setValidators(repeatedPersonNumber)
,您需要调用updateValueAndValidity()
才能使新的验证生效。
检查是否可行。如果不是这样,则需要提供HTML代码和Submit函数代码段以了解问题的根源。