通过一个请求请求父母的孙子孙女

时间:2014-09-11 01:02:57

标签: ember.js ember-data

我们说我有以下型号

App.Person = DS.Model.extend({
  name: DS.attr('string'),
  books: DS.hasMany('book')
});

App.Book = DS.Model.extend({
  title: DS.attr('string'),
  person: DS.belongsTo('person'),
  chapters: DS.hasMany('chapter', { async: true })
});

App.Chapter = DS.Model.extend({
  title: DS.attr('string'),
  book: DS.belongsTo('book')
});

我正在使用ActiveModelAdapter

App.ApplicationAdapter = DS.ActiveModelAdapter;

我的API会将书籍数据与人员一起加载,因此@store.find('person', 1)会返回类似于以下内容的JSON

{
  person: {
    id: 1,
    name: 'John Smith',
    book_ids: [1, 2]
  },
  books: [{
    id: 1,
    title: 'Book 1',
    chapter_ids: [1, 2]
  }, {
    id: 2,
    title: 'Book 2',
    chapter_ids: [3]
  }]
}

鉴于我的API设置为接受类似

的请求
/chapters?ids[]=1&ids[]=2&ids[]=3

如果我有Person的实例,我是否可以让ember-data为其每本书在单个查询中获取所有章节,并通过该协会?例如,

person.get('books.firstObject').get('chapters')  # or...
person.get('books')[1].get('chapters')

基本上,我不想发出N个请求,其中N =该人拥有的图书数量。

Here is a jsbin I started

谢谢!

0 个答案:

没有答案