【发布时间】:2016-01-29 15:43:58
【问题描述】:
假设我有两个模型,Author 和 Book。
// models/author.js
DS.Model.extend({
name: DS.attr(),
books: DS.hasMany('book')
});
// models/book.js
DS.Model.extend({
title: DS.attr(),
author: DS.belongsTo('author')
})
如果有一个端点在
/api/authors/{authorID}/books 能够在一个批处理请求中获取所有作者的书籍,而不是多次调用 /api/books/{bookID},但 ember 似乎不支持这一点。可以使用/api/books?authorID={authorID},但这会失去store 的一些好处。
有没有一种 Ember 惯用的方式来处理 /api/authors/{authorID}/books?同样,目标是能够发出一个批处理请求来获取作者的所有书籍,而不是为作者的hasMany 列表中的每一本书发出一次调用。
对于更多的上下文,我有以下路线结构:
// router.js
...
this.route('authors', function() {
this.route('author', { path: ':id' }, function() {
this.route('books');
});
});
...
在“作者”路径中,我将加载所有作者。我还不想同步加载他们的相关书籍,因为列表可能很庞大,并且不会在这条路线上使用。
在author 路由中,我使用已检索到的作者数据(在本例中为姓名)。
在books 路由中,我想最终加载作者的所有相关书籍,而不需要为每本书发送一个请求。
【问题讨论】:
标签: ember.js ember-data