0

我可能从根本上误解了如何在 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);

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

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

提前感谢您的任何帮助。

4

1 回答 1

1

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

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

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

于 2014-06-04T22:54:20.083 回答