如何在Angular 8中动态替换对象键名——将factORLossTree重命名为savefactORLossTree
如何将请求载荷中的
factORLossTree重命名为savefactORLossTree? 你可以通过两种简单直观的方式在TypeScript中实现对象属性的重命名,以下是适配你现有代码的具体修改方案:
方法一:解构赋值+扩展运算符(不修改原对象)
这种方式会生成一个全新的对象,保留原formData的其他属性,同时完成属性重命名,适合需要保留原对象结构的场景:
saveOrUpdateORData() { const formData = Object.assign({}, this.orLosstreeForm.value); if (formData.factORLossTree.length === 0) { this.dialogService.openDialog('Data Not Available'); return false; } // 解构原属性并重新命名,同时提取剩余所有属性 const { factORLossTree: savefactORLossTree, ...restProps } = formData; // 组合成目标结构的新对象 const transformedPayload = { ...restProps, savefactORLossTree }; console.log(transformedPayload, "transformed payload"); // 后续提交请求时使用 transformedPayload 即可 return; }
方法二:直接修改原对象(简单高效)
如果你不需要保留原formData的原始结构,可以直接操作对象添加新属性、删除旧属性,步骤更简洁:
saveOrUpdateORData() { const formData = Object.assign({}, this.orLosstreeForm.value); if (formData.factORLossTree.length === 0) { this.dialogService.openDialog('Data Not Available'); return false; } // 将旧属性的值赋给新属性 formData.savefactORLossTree = formData.factORLossTree; // 删除旧属性 delete formData.factORLossTree; console.log(formData, "updated formdata"); // 此时 formData 就是你需要的请求载荷结构 return; }
两种方法都能生成你期望的请求载荷格式,你可以根据自己的代码场景选择合适的方案。
内容的提问来源于stack exchange,提问作者Pravesh Singh
相关产品推荐
相关产品推荐

