Ember 使用 JSONAPI 进行数据端加载
Ember data side loading with JSONAPI
为我的路线生成的请求是 http://api.myApp.com/tags/123/products
,但我需要做一些侧面加载以提高性能,所需的 XHR 将是:
http://api.myApp.com/tags/123/products?include=sideload1,sideload2,sideload3
我的路由器是这样的:
this.route('tags', function() {
this.route('tag', { path: ':id' }, function() {
this.route('products', function() {
});
});
});
我想为产品侧载一些异步模型,目前我有:
// app/routes/tags/tag/products.js
model() {
return this.modelFor('tags.tag').get('products');
}
我将如何在路由中添加查询参数?
我正在一个项目中做类似的事情并且 store.query(type, { query });
对我有用。 http://emberjs.com/blog/2015/06/18/ember-data-1-13-released.html#toc_query-and-queryrecord
定义模型并传入时尝试store.query
{include: "sideload1,sideload2,sideload3"}
另一种选择可能是为您的模型创建一个适配器并使用 buildURL
添加查询参数...但是这有点老套,如果您的 API 则没有必要遵循 JSON API 标准。
App.TagsAdapter = DS.JSONAPIAdapter.extend({
buildURL: function(type, id) {
var baseURL = 'http://api.myApp.com/tags/123/products';
var method = '?include=sideload1,sideload2,sideload3';
return baseURL + method;
}
});
为我的路线生成的请求是 http://api.myApp.com/tags/123/products
,但我需要做一些侧面加载以提高性能,所需的 XHR 将是:
http://api.myApp.com/tags/123/products?include=sideload1,sideload2,sideload3
我的路由器是这样的:
this.route('tags', function() {
this.route('tag', { path: ':id' }, function() {
this.route('products', function() {
});
});
});
我想为产品侧载一些异步模型,目前我有:
// app/routes/tags/tag/products.js
model() {
return this.modelFor('tags.tag').get('products');
}
我将如何在路由中添加查询参数?
我正在一个项目中做类似的事情并且 store.query(type, { query });
对我有用。 http://emberjs.com/blog/2015/06/18/ember-data-1-13-released.html#toc_query-and-queryrecord
定义模型并传入时尝试store.query
{include: "sideload1,sideload2,sideload3"}
另一种选择可能是为您的模型创建一个适配器并使用 buildURL
添加查询参数...但是这有点老套,如果您的 API 则没有必要遵循 JSON API 标准。
App.TagsAdapter = DS.JSONAPIAdapter.extend({
buildURL: function(type, id) {
var baseURL = 'http://api.myApp.com/tags/123/products';
var method = '?include=sideload1,sideload2,sideload3';
return baseURL + method;
}
});