【发布时间】:2012-11-06 18:38:52
【问题描述】:
假设你有以下模型:
App.Item = DS.Model.extend({
owner: DS.belongsTo('App.Person', {embedded: true})
})
这意味着你可以加载这个嵌入的关联,但这也意味着如果你想为一个已经存在的人创建一个新的 Item,ember-data 也会为每个新的 item 嵌入 Person 对象。
是否可以让它加载嵌入的对象,但在创建关联时只发送 id?即改为发送:
{"item": {"owner_id": 5}}
编辑: 澄清一下,我希望 ember-data 加载嵌入式关系,但如果我设置 {embedded: true} 这段代码:
App.Item.createRecord({name: 'Something', owner: App.Person.find(1)});
// And a few moments later when App.Person.find(1) has loaded
App.store.commit()
它将发送以下json:
{ "item": {"name": "Something", owner: { id: 1, name: "whatever" }}
但我想要的是:
{ "item": {"name": "Something", owner_id: 1 }}
基本上,如果我设置 embedded = true ember-data 也会在您创建对象时嵌入关联。
【问题讨论】:
-
想要的就是发生的事情。它不发送嵌入的对象。它只发送ID。我不确定此功能是否包含在最新版本的 ember-data 中。你用的是什么版本?
-
我正在使用大约一个月前的 master 分支中的版本。显然,在最新版本中,他们删除了嵌入式加载选项,并计划稍后将其包含在内,请参阅:github.com/emberjs/data/pull/428。真是一团糟……
标签: ember.js ember-data