6

EmberJS 在早期版本中删除了 hasOne。什么方法可以创建我想要的嵌套对象关系 hasOne

删除 hasOne 以支持 belongsTo,任何人都可以分享关于如何编写嵌套 JSON 之间的 {embedded : always} 关系的想法。

4

2 回答 2

16

我知道这个问题已经过时并且已经得到解答,但由于它是“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 的信息的人

于 2013-09-15T05:44:20.163 回答
1

您必须在适配器上设置映射,请参阅此答案以获取工作示例。

于 2013-02-04T12:00:57.770 回答