Необязательные параметры URL в ресурсе AngularJs

У меня есть такой ресурс: var Products = $resource('companies/:companyId/products') Проблема в том, что я хотел бы получить продукты всех компаний по url companies/products, но используя ресурс и не предоставляя companyId, я получаю companies//products. Вероятно, я мог бы использовать другой URL-адрес, например, только /products, но означает ли это, что у меня должен быть другой ресурс для одного и того же?

В этом простом случае я мог бы изменить url на companies/products/:companyId, но это, по-видимому, довольно общий случай.

Ответ 1

Да, в настоящее время вам нужно определить другой $resource.

Но вы можете обернуть несколько экземпляров $resource в одну службу, если хотите...

app.factory('mergedRes', function($resource) {
  var r1 = $resource('/companies/:companyId/products');
      r2 = $resource('/companies/products');

  r1.getAll = r2.query.bind(r2);

  return r1;
});