2017-05-30 53 views
2

簡單的問題,但我想知道如何有效地做到這一點。很容易引起負面投票。在前端和服務器之間分享相同的模型

我有一個模型,我想分享前端和後端。對於手動前端,我想添加一些屬性。後端不需要這些屬性。上述

足以用於服務器(後端)。

但在前端,我需要做一個額外的thing.Based價值我需要定義顏色屬性(值< 10,色綠等)

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

所以,當我更新MODELA在編輯id/name後返回到服務器,無論我不想傳遞顏色屬性。

單模式我怎麼能做到這一點?

回答

2

我認爲你是在這種情況下,找什麼是切片(參見例如這樣的: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); 

編輯: 此外,我不知道如何有更多的屬性對你的對象是不利的。這取決於你的框架和你的查詢方法。在接收後端部分時,我只是簡單地忽略對象的其他屬性。

+0

我的情況稍有不同。我將從服務器獲取ModelA,並且我想爲其添加1個額外的屬性。在更新回服務器時,我不需要傳遞額外的附加屬性。 額外添加的屬性只在前端需要。 –

+0

擁有更多不必要的屬性是不好的,因爲我們正在向後端發送更多數據。 –

+0

然後,我不知道如何用一個模型來實現這一點。你有modelA,你服務器的真實數據模型,modelB就是我所說的ViewModel(不知道這裏是否是合適的術語)。我會在負責發送對象的服務中進行「transtyping」操作。 – Pac0

相關問題