繁体   English   中英

如何使用多个嵌套的 json 值修补反应式表单

[英]How to patch a reactive form with multi nested json values

我正在使用包含 formArray、formGroups 和 formControls 的多嵌套(无限级)反应形式的值。 存储在数据库中。

目前,我正在使用递归函数修补表单,该函数遍历整个 JSON 并根据键和值生成 formArrays、formGroups 和 formControls。

现在的问题是,我使用的这种方法从性能角度来看并不好,那么有没有更好的方法一次性修补这种多嵌套表单? (只需创建表单,无需在 HTML 中显示)

这是用于问题参考的简化 JSON -

任何部分都可以有子部分,然后子部分可以有某种部分

const formDataSections = [
  {
    index: 1,
    sectionName: "",
    subSections: [
      {
        index: 1,
        subSectionName: "",
        sections: [
          {
            index: null,
            sectionName: "",
            subSections: [
              {
                index: null,
                subSectionName: "",
                sections: [
                  {
                    index: null,
                    sectionName: "",
                  },
                  {
                    index: null,
                    sectionName: "",
                    subSections: [
                      {
                        index: null,
                        subSectionName: "",
                        sections: [
                          {
                            index: null,
                            sectionName: "",
                          },
                          {
                            index: null,
                            sectionName: "",
                            subSections: [],
                          },
                        ],
                      },
                    ],
                  },
                ],
              },
            ],
          },
          {
            index: null,
            sectionName: "",
            subSections: [
              {
                index: null,
                contentTypes: [],
                sections: [
                  {
                    index: null,
                    sectionName: "",
                    subSections: [],
                  },
                ],
              },
            ],
          },
        ],
      },
    ],
  },
];

它非常具有挑战性的js技巧:D

我想您可以将 JSON 对象转换为字符串并将其调整为可读字符串。

尝试找到您想要的键和循环。 将值推入不同的数组取决于键类型。

现在你能预期结果吗?

使用JSON.stringify函数。

您可以使用ControlValueAccessor ( docs ) 创建自定义“子表单”组件并递归调用该组件( 示例

我认为您无法避免递归,因为列表可能具有无限长度

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM