【发布时间】:2026-01-05 21:15:02
【问题描述】:
我想创建一个函数来检查FormGroup 中是否至少有一个非空值,它可以由任何类型的AbstractControl 组成(FormControl、FormArray 或FormGroup) .默认情况下,所有值都设置为null。我遇到了一个函数,可以递归地计算 FormGroup 中的所有 FormControl。
const countControls = (control: AbstractControl): number => {
if (control instanceof FormControl) {
return 1;
}
if (control instanceof FormArray) {
return control.controls.reduce((acc, curr) => acc + countControls(curr), 1)
}
if (control instanceof FormGroup) {
return Object.keys(control.controls)
.map(key => control.controls[key])
.reduce((acc, curr) => acc + countControls(curr), 1);
}
}
我无法为我的用例(即 checkNonNull)转换这个函数,它会返回一个布尔值。至少一个非空值为真,否则为假。
【问题讨论】:
标签: angular angular-reactive-forms formgroups