Ember.js 如何从EmberJS中的另一个REST url检索相同的模型

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); 但是,我不知道如何从用户路径查询产品。这样做的地方应该是适配器,但我需要定义一个辅助适配器,当我需要支持的产品时,我会调用它,我不知道怎么做。我想如果是我,我会创建一个虚拟查询参数,指

我的emberJS应用程序的模型树与我的API树匹配,但是,我有两条不同的路径返回相同类型的数据:

/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);
  }
});
下面是一个演示示例: