0

我继承了我正在调试的角度代码文件。当我记录需要评估的 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] 而不是 [FormControl] 的条件

4

1 回答 1

2

instanceof操作员测试类型:

if (... && (<FormArray>formArray).controls[0] instanceof FormGroup) { ... }
于 2021-09-14T00:03:22.350 回答