确定 FormArray 的控件 属性 是 [FormControl] 还是 [FormGroup] 的选择器?
Selector to determine if FormArray's controls property is a [FormControl] or [FormGroup]?
我继承了一个正在调试的 angular 代码文件。当我记录我需要评估的 FormArray 时,它会作为两种类型的 FormArray 控件之一注销:[FormControl] 或 [FormGroup]。
这是我正在记录的函数部分:
someFunction(data: any, useForm: any = false): any {
const form = useForm || <FormGroup>this.formGroup;
forEach(data, (value, key) => {
// Check nested FormArray items that include FormControls (Would likely be from mat-table).
const formArray = (<FormGroup>form).get(String(key));
console.log('formArray > ', formArray);
if (isArray(value) && formArray.hasOwnProperty('controls') && [HELP])
在一个用例中,当加载包含表单控件的 mat-table 时,我在日志中得到以下信息:
在另一个用例中,例如具有多个选项的复选框控件,我得到这个:
我需要弄清楚如何过滤最后一行代码,即 IF 语句的 [HELP] 条件,以便它只匹配 FormArray 的控件 属性 包含 [FormGroup] 而不是的条件一个 [表单控件]
instanceof
运算符测试类型:
if (... && (<FormArray>formArray).controls[0] instanceof FormGroup) { ... }
我继承了一个正在调试的 angular 代码文件。当我记录我需要评估的 FormArray 时,它会作为两种类型的 FormArray 控件之一注销:[FormControl] 或 [FormGroup]。
这是我正在记录的函数部分:
someFunction(data: any, useForm: any = false): any {
const form = useForm || <FormGroup>this.formGroup;
forEach(data, (value, key) => {
// Check nested FormArray items that include FormControls (Would likely be from mat-table).
const formArray = (<FormGroup>form).get(String(key));
console.log('formArray > ', formArray);
if (isArray(value) && formArray.hasOwnProperty('controls') && [HELP])
在一个用例中,当加载包含表单控件的 mat-table 时,我在日志中得到以下信息:
在另一个用例中,例如具有多个选项的复选框控件,我得到这个:
我需要弄清楚如何过滤最后一行代码,即 IF 语句的 [HELP] 条件,以便它只匹配 FormArray 的控件 属性 包含 [FormGroup] 而不是的条件一个 [表单控件]
instanceof
运算符测试类型:
if (... && (<FormArray>formArray).controls[0] instanceof FormGroup) { ... }