EmberJS已在早期版本中删除了hasOne。什么是创建这样一个嵌套对象关系的方式,我想拥有hasOne
删除hasOne已经完成了有利于belongsTo,任何人都可以分享如何在嵌套JSON之间编写{embedded:always}关系。
答案 0 :(得分:15)
我知道这个问题已经陈旧并且已经回答,但因为它是最重要的问题之一 搜索结果“ember hasone”我想分享我对这个主题的发现。 我已经在第一个答案中阅读了该链接,但该示例有点过时了。
“embedded”标志已过时,“DS.RESTAdapter.map”不是函数,不推荐使用“DS.hasOne”方法。
用于模拟“hasOne关系”的当前1.0.0-beta.2解决方案只是使用“DS.belongsTo”。它们并没有太大差异,您只需将hasOne foreignKeys添加到您的结果集中,就像使用belongsTo一样。
来源: https://github.com/emberjs/data/commit/a466741a36731c5d382df33461268024627325ef
以下是复杂模型的示例服务器响应。
{"users": [{
"id": 1,
"name": "John Doe",
"profile": 27, // merged hasone
"image": 3, // merged hasone
"account_id": 64 // an actual belongsTo
}]}
然后作为模型
App.User = DS.Model.extend({
name: DS.attr('string'),
profile: DS.belongsTo('profile'),
image: DS.belongsTo('image'),
account_id: DS.belongsTo('account')
});
希望这有助于任何人寻找有关如何建模hasOne的信息
答案 1 :(得分:1)
您必须在适配器上设置映射,有关工作示例,请参阅this answer。