2015-12-02 52 views
0

我正在建設購物車。以下我的display object是可供購物者使用的數據。 cart object是購物車中購物者選擇的代表。我遇到的問題是,有人想編輯購物車中的物品並改變其大小。 sizes不再在購物車項目中,因爲我已經選擇了一個尺寸&殺死了其餘的。如何創建可編輯的購物車項目

// display object 
{ 
    "sizes": [ 
     { 
      "price": 4.99, 
      "title": "s" 
     }, 
     { 
      "price": 5.99, 
      "title": "m" 
     }, 
     { 
      "price": 6.99, 
      "title": "l" 
     } 
    ], 
    "desc": "here's our green hat", 
    "title": "green hat" 
} 

// cart object 
{ 
    "size": 
    { 
     "price": 4.99, 
     "title": "s" 
    }, 
    "desc": "here's our green hat", 
    "title": "green hat" 
} 

SO ....我應該只是沿着我的整個display object &被標記(不知)已選擇該選項通過?還是有另一個我錯過的解決方案?

+1

通過讓每個對象都包含所有可能的選項,您可能會得到大量冗餘信息。爲什麼不把有關對象的信息保存在角度服務中(可以從數據庫或某種後端獲取)。然後獲得關於你的對象的信息並相應地設置它的方法? – lintmouse

回答

0

如果您的購物項目經常更改,您必須從您的後端系統重新啓動以確保您的數據一致。此時最好調用數據庫並獲取所有大小的整個對象。這種解決方案也更適合帶來物品的當前狀態(可能是L尺寸可用,但現在不會在決定更改之後,因爲它具有大量購買流量)

提示:您可以允許您的後端系統緩存經常使用其大小調用的項目,以獲得更好的性能結果。

但是,如果您的購物項目通常不會更改或更新,最好傳遞具有所有尺寸的整個對象,並添加新屬性以標識所選對象。

+0

對,但是有沒有更好的方法來組織我的模型,以便更容易地梳理以前的輸入重新填充新的表單? –