我们说我有以下型号
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 =该人拥有的图书数量。
谢谢!