Как получить ту же модель из другого REST URL в EmberJS - PullRequest
0 голосов
/ 11 февраля 2019

Дерево моделей моего приложения emberJS совпадает с деревом моего API, однако у меня есть 2 разных маршрута, возвращающих данные одного типа:

/products/ и /users/:id/supported_products/ оба возвращают данные о продуктах.

Когда мне нужно products приложения, проблем не возникает:

 this.store.query('product',params);

Однако я не уверен, как запрашивать продукты по пути пользователя.Для этого нужно использовать адаптер, но мне нужно определить дополнительный адаптер, который я бы назвал, когда мне нужны поддерживаемые продукты, и я не знаю, как это сделать.

1 Ответ

0 голосов
/ 11 февраля 2019

Я думаю, что если бы это был я, я бы создал виртуальный параметр запроса, который инструктировал бы пользовательский адаптер о том, как изменить конечную точку на лету.

Например, у меня может быть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);
  }
});

Вот пример, демонстрирующий это: https://ember -twiddle.com / b406391e98ed4fda30bc227a894fa7c9

...