如何与嵌入式始终关系有一个关系

时间:2013-02-04 11:56:34

标签: ember.js ember-data

EmberJS已在早期版本中删除了hasOne。什么是创建这样一个嵌套对象关系的方式,我想拥有hasOne

删除hasOne已经完成了有利于belongsTo,任何人都可以分享如何在嵌套JSON之间编写{embedded:always}关系。

2 个答案:

答案 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