Ember.js 如何从EmberJS中的另一个REST url检索相同的模型
我的emberJS应用程序的模型树与我的API树匹配,但是,我有两条不同的路径返回相同类型的数据:Ember.js 如何从EmberJS中的另一个REST url检索相同的模型,ember.js,ember-data,Ember.js,Ember Data,我的emberJS应用程序的模型树与我的API树匹配,但是,我有两条不同的路径返回相同类型的数据: /products/和/users/:id/supported\u products/都返回产品数据 当我需要应用程序的产品时,没有问题: this.store.query('product',params); 但是,我不知道如何从用户路径查询产品。这样做的地方应该是适配器,但我需要定义一个辅助适配器,当我需要支持的产品时,我会调用它,我不知道怎么做。我想如果是我,我会创建一个虚拟查询参数,指
/products/
和/users/:id/supported\u 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);
}
});
下面是一个演示示例:我想如果是我,我会创建一个虚拟查询参数,指示自定义适配器如何动态更改端点
例如,我可能有一个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);
}
});
下面是一个演示示例: