javascript - 前端和服务器共享相同的模型

标签 javascript angular typescript model frontend

简单的问题,但我想知道如何有效地做到这一点。很容易吸引负面选票。

我有一个模型想在前端和后端之间共享。对于前端手动我想添加一些属性。后端不需要这些属性。

export class ModelA {
id: string;
name: string;
value: number;
}

以上对于服务器(后端)来说已经足够了。

但在前端我需要做一件额外的事情。基于值我需要定义颜色属性(值<10,颜色绿色等..)

export class ModelA {
id: string;
name: string;
value: number;
color: string;
}

因此,当我在编辑 id/name 后将 ModelA 更新回服务器时,我不想传递颜色属性。

使用单一模型我如何实现这一目标?

最佳答案

我认为在这种情况下您要寻找的是切片(例如参见: How to get a subset of a javascript object's properties )

您实际上正在获取对象属性的子集,

let objectFront = { id: 'a', name: 'b', value: 'c', color: "d" };
let objectBack = (({id, name, value}) => ({id, name, value}))(objectFront);

编辑: 另外,我不确定对象上拥有更多属性对您有何不利。这取决于您的框架和查询方法。在后端部分接收对象时,我会简单地忽略对象的附加属性。

关于javascript - 前端和服务器共享相同的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44257780/

相关文章:

javascript - 更改服务日历中的选定行 [CRM2013]

Javascript 声音开始/停止和图像更改第 2 部分

c# - 强制链接到 mp3 文件以下载/另存为

javascript - 使用 jQuery 将 CanvasJS 图表克隆为模态

ios - 防止 Angular NativeScript WebView 通过捏缩放进行缩放

javascript - Angularjs - 在完成之前删除元素闪烁的指令

用于在悬停行上显示按钮的 Angular 2 表行悬停

angular - Angular2 不接受 Typescript 中的 JS 操作

javascript - 如何编写和使用 @types 或 DefinitelyTyped 上不存在的自定义声明文件?

javascript - 在回调函数中可观察 - Angular 5