我emberJS应用程序的模型树但是我的API的树匹配,我有2条不同的路线返回相同的数据类型:
/products/
和/users/:id/supported_products/
都返回产品的数据。
当我需要的应用程序的products
没有问题:
this.store.query('product',params);
但是我不知道如何查询产品从用户路径。这样做的地方将是适配器,但我需要定义一个次适配器,我会打电话的时候,我需要支持的产品,我不知道怎么做。
我想,如果是我,我会创造条件,指导如何动态更改端点的自定义适配器的虚拟查询参数。
例如,我可能有一个supportedByUser
标志。然后在我的app/adapters/product.js
做这样的事情:
import JSONAPIAdapter from 'ember-data/adapters/json-api';
export default JSONAPIAdapter.extend({
urlForQuery(query, modelName) {
let userId = query.supportedByUser;
delete query.supportedByUser;
return userId
? `${this.namespace || ''}/users/${userId}/supported_products`
: this._super(...arguments);
}
});
下面是一个例子玩弄demoing这样的:https://ember-twiddle.com/b406391e98ed4fda30bc227a894fa7c9