Estoy usando el valor de un formulario reactivo multi anidado (nivel infinito) que contiene formArray, formGroups y formControls. Que se almacena en DB.
Actualmente, estoy parcheando el formulario usando una función de recursión que recorre todo el JSON y crea formArrays, formGroups y formControls basados en claves y valores.
Ahora, el problema es que este método que estoy usando no es bueno desde la perspectiva del rendimiento, entonces, ¿hay alguna manera mejor de parchear este tipo de formulario anidado múltiple de una sola vez? (Simplemente cree un formulario, no es necesario que se muestre en HTML)
Esto es JSON simplificado para referencia de preguntas:
Cualquier sección puede tener subsecciones y luego las subsecciones pueden tener algún tipo de sección
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: [], }, ], }, ], }, ], }, ], }, ];Puede crear un componente de "subformulario" personalizado utilizando ControlValueAccessor ( docs ) y llamar al componente de forma recursiva ( ejemplo )
No creo que pueda evitar la recursividad ya que la lista tiene una longitud potencialmente infinita
Aquí hay un ejemplo de StackBlitz ( que no funciona completamente... ), solo para mostrar de lo que estoy hablando.