通过hasMany关系访问ember模型对象中的相关集合

时间:2014-06-04 22:39:19

标签: javascript ember.js ember-model

我可能从根本上误解了如何在Ember / ember-model中使用hasMany关系。

ember-model自述文件包含以下示例

postJson = {
  id: 99,
  title: 'Post Title',
  body: 'Post Body',
  comments: [
    {
      id: 1,
      body: 'comment body one',
    },
    {
      id: 2,
      body: 'comment body two'
    }
  ]
};

App.Post = Ember.Model.extend({
  id: Ember.attr(),
  title: Ember.attr(),
  body: Ember.attr(),
  comments: Ember.hasMany('App.Comment', {key: 'comments', embedded: true})
});

App.Comment = Ember.Model.extend({
  id: Ember.attr(),
  body: Ember.attr()
});
据推测,人们会做以下事情

post = App.Post.create();
post.load(1, postJson);

鉴于上述情况,现在我们可以通过get(即post)访问各种post.get('title')道具,但是如何访问评论?

post.get('comments')返回一个对象,但它不是App.Comment对象的集合,这正是我所期望的。

提前感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:1)

它返回一个可迭代的集合对象,但不是数组。我正在用你的代码编写一个例子,我会暂时发布它(我很确定load是一个私有方法,你应该在模型定义上使用load,然后找到)。

App.Post.load(postJson); //sideloading
return App.Post.find(99);

http://jsbin.com/hocopoga/1/edit