我想向RESTful服务器询问给定products
的{{1}}。服务器具有两者的嵌套路由。因此,路径category
将仅导出ID为1的/categories/1/products
的产品。
在我当前的应用程序中,我有一个路由,它获取第一个category
和所有category
。这是浪费资源。如何更改Ember Data仅使用服务器的嵌套路径获取products
的{{1}}?
route.js
products
应用/类别/ model.js
category
应用/产品/ model.js
import Ember from 'ember';
export default Ember.Route.extend({
model: function() {
return {
category: this.store.find('category', 1),
products: this.store.find('product')
};
}
});
应用/应用/ adapter.js
import DS from 'ember-data';
export default DS.Model.extend({
name: DS.attr('string'),
products: DS.hasMany('product', { async: true })
});
答案 0 :(得分:0)
我通常这样做的方法是通过查询字符串。
this.store.query('products', {category : 1});
//for older ember-data version use syntax below
//this.store.fetch('products', {category : 1});
这将生成
http://www.example.com/api/v1/products?category=1
您的服务器方法可以选择合适的产品
实际上再次审核您的问题,您可以执行以下操作以避免任何服务器更改。
export default Ember.Route.extend({
model: function() {
return {
let promise = this.store.find('category', 1);
category: promise , //mmmm ... this line might not work because I have chained a .then() onto it below, if not try this.store.find('category', 1). Get back to me with your findings.
products: promise.then(function(category) {
return category.get('products').then(function(products) {
return products;
});
});
};
}
});