У меня есть вложенная реактивная форма, подобная следующей:
this.form = this.fb.group({
ies_Cabecera: this.fb.group({
cab_DatosEstablecimiento: this.fb.group({
cab_NIFEs: this.fb.control(''),
cab_CAEEs: this.fb.control('')
}),
ies_Cuerpo: this.fb.group({
ies_Asiento: this.fb.group({
ies_DatosIdentificativosAsiento: this.fb.group({
ies_NumReferenciaInterno: this.fb.control(''),
ies_NumAsientoPrevio: this.fb.control('')
}),
ies_DatosFecha: this.ies_DatosFecha = this.fb.group({
tip_FechaMovimiento: this.fb.control(''),
tip_FechaRegistroContable: this.fb.control('')
}),
})
})
})
Что мне нужно:
При выполнении JSON.Parse(this.form.getRawValue())
мне нужно некоторые FormGroups всегда появляются в JSON, даже если их дочерние элементы управления не имеют значения.
Пример Когда tip_FechaMovimiento
и tip_FechaRegistroContable
не заполнены:
{
"ies_Cabecera": {
"cab_DatosEstablecimiento": {
"cab_NIFEs": "xxxx",
"cab_CAEEs": "xxxx"
}
},
"ies_Cuerpo": {
"ies_Asiento": {
"ies_DatosIdentificativosAsiento": {
"ies_NumReferenciaInterno": "xxxx",
"ies_NumAsientoPrevio": "xxxx"
},
"ies_DatosFecha": {
--EMPTY--
}
}
}
}
Есть ли способ заставить JSON.Parse
некоторые поля (FormGroups) всегда появляться? Благодарю.
Для удаления пустых полей я использую этот код:
let output = JSON.parse(
JSON.stringify(this.form.getRawValue()),
(key, value) => value === '' ? undefined : value
);
output = JSON.parse(
JSON.stringify(output),
(key, value) => Object.entries(value).length === 0 ? undefined : value
);