2017-07-27 80 views
0

我有兩個型號在灰燼:保存使用灰燼數據嵌套模型

收集

export default DS.Model.extend({ 
    name: DS.attr(), 
    description: DS.attr(), 
    items: DS.hasMany('collection-item') 

}); 

收集項目

export default DS.Model.extend({ 
    date: DS.attr(), 
    volume: DS.attr(), 
    sequenceNumber: DS.attr() 
}); 

我想保存裏面的藏品'item'屬性的集合,如MongoDB:

[{ 
    "name": "First Collection", 
    "description": "This is my first collection", 
    "items": [ 
     { 
      "date": "2017-07-26", 
      "volume": "1", 
      "sequenceNumber": "1" 
     }, 
     { 
      "date": "2017-07-27", 
      "volume": "1", 
      "sequenceNumber": "2" 
     } 
    ] 
}, 
{ 
    "name": "Second Collection", 
    "description": "This is my second collection", 
    "items": [ 
     { 
      "date": "2017-07-26", 
      "volume": "1", 
      "sequenceNumber": "1" 
     }, 
     { 
      "date": "2017-07-27", 
      "volume": "1", 
      "sequenceNumber": "2" 
     } 
    ] 
}] 

我已閱讀了一些關於序列化器的內容,但我沒有理解這一點;)有人可以給我一個提示嗎?

順便說一下,我現在正在使用Firebase(emberfire),但我將在未來構建自己的API。

回答

1

您所描述的內容在Ember中被稱爲嵌入式記錄。在串行器頁面上,JSONAPISerializer的討論下面是關於嵌入式記錄mixin的討論:https://guides.emberjs.com/v2.14.0/models/customizing-serializers/

您可以使用帶有嵌入式mixin的RESTSerializer來實現您的目標。這就是說,除非你的後端需求相當簡單,否則我建議你開始建立一個後端(並使用JSON-API),然後你太過分了。 JSON-API是基於Ember社區多年來感受到的痛點的規範。如果您現在構建一個更簡單的後端,那麼您將來可能會發現自己非常頭痛,JSON-API專門用於解決這個問題。

祝你好運!