保存新记录时清空请求有效负载 - Ember-data

时间:2014-02-06 01:25:33

标签: ember.js ember-data

我正在尝试:

保留新记录但由于某种原因,即使记录有数据,请求有效负载也为空。

这是一个小提琴:http://jsfiddle.net/brancusi/m8VrB/16/

(忽略firebase,它就在那里,所以我们可以在保存时检查请求的有效负载。)

说明:

您会注意到,保存记录时,请求有效负载为空。

理想情况下,请求有效负载看起来像这样:

{
    "inventory": {
        "entry_time": "2014-02-05",
        "client_id": 1,
        "user_id": 1,
        "product_stock_levels": [
            {
                "product_id": 1,
                "quantity": 2
            },
            {
                "product_id": 2,
                "quantity": 0
            },
            {
                "product_id": 3,
                "quantity": 8
            }
        ]
    }
}

注意:

这只是一个问题,当它是一个新的记录。更新现有记录会发送正确的有效负载。

1 个答案:

答案 0 :(得分:1)

您希望ember数据在默认保存时在模型中嵌入关系。这不是默认行为。

您可以将关系定义为每个模型嵌入。但是不再支持嵌入式记录功能,如下所述:https://github.com/emberjs/data/blob/master/TRANSITION.md我不确定基本的嵌入式记录功能是否仍然适用于最新版本的ember数据。但是您将记录定义为嵌入式:

App.InventorySerializer = DS.ActiveModelSerializer.extend(DS.EmbeddedRecordsMixin, {
    attrs: {
        productStockLevels: {embedded: 'always'}
    }
});

由于核心团队停止了对此嵌入式记录功能的支持,并且它非常基础,如果您需要支持嵌入式记录,我建议您使用EmbbededAdapterEmbeddedMixin。你可以在这里找到它们:https://github.com/pixelhandler/ember-data-extensions

但是,由于Ember Data EmbeddedAdapter还不稳定。如果您可以灵活地定义api,也许您应该考虑不嵌入记录以降低复杂性。