反应形式类型与数据不匹配

问题描述 投票:2回答:1

我发现很多时候我获取/发布到Web服务的数据结构与表单所需的数据结构之间存在细微的差异。使用反应形式时,处理不匹配的最佳方法是什么。我可以在表单组中的单个属性上使用某种类型的getter / setter吗?我要为formGroup名称使用什么?

现在,我正在编写两个转换函数-一个从我的数据模型到我在inform上运行的init上运行的formModel,一个从我的dataModel到我在对formGroup进行补丁之前运行的formModel,一个从我的formModel到我在保存之前运行的dataModel,然后才能将数据回传给我[]

例如,我的Web服务获取/发布此结构有几秒钟,但UI要求持续数天。

interface Request
{
   name:string, 
   description:string, 
   processBy: number //the number of seconds
}

但是用户界面只需要询问几天

interface formModel 
{
   name:string, 
   description:string, 
   processByDays: number 
}
<input type="number" formControlName="processByDays" /> 

我在使用需要数组的自定义列表控件时遇到了类似的问题,但是我的数据是标量,所以我只有一堆笨拙的代码来包装/解包标量值。

我发现很多时候我获取/发布到Web服务的数据结构与表单所需的数据结构之间存在细微的差异。什么是处理...的最佳方法?

angular angular-reactive-forms type-mismatch
1个回答
1
投票

没有针对该问题的通用解决方案。但是,您不应该在表单中或表单周围处理此转换。处理保存数据的服务中的转换。您需要为每个字段执行此操作,因为这是特定于您的业务逻辑的转换。

© www.soinside.com 2019 - 2024. All rights reserved.