Доступ к связанной коллекции в объекте ember-model через отношение hasMany

Я, возможно, принципиально не понимаю, как использовать отношения hasMany в Ember/ember-model.

в файле ember-model readme есть следующий пример

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 (т.е. post.get('title')), но как мне получить доступ к комментариям?

post.get('comments') возвращает объект, но это не коллекция объектов App.Comment, чего я и ожидал.

Заранее спасибо за любую помощь.

1 ответ

Решение

Он возвращает объект коллекции, который является итеративным, но не массив. Я работаю над примером с вашим кодом, я опубликую его на мгновение (я почти уверен, что load - это закрытый метод, и вы должны использовать load для определения модели, а затем найти).

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

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

Другие вопросы по тегам