AngularJs Resource中的可选url参数

时间:2012-04-30 10:43:10

标签: javascript angularjs

我有这种资源:var Products = $resource('companies/:companyId/products') 问题是,我希望通过网址companies/products获取所有公司的产品,但是使用资源而不提供companyId我得到companies//products。可能我可以使用另一个网址,比如/products,但这是否意味着我必须为同一个东西拥有另一个资源?

在这个简单的例子中,我可以将网址更改为companies/products/:companyId,但这似乎是非常普遍的情况。

1 个答案:

答案 0 :(得分:13)

是的,目前您需要定义另一个$资源。

但是如果你想要的话,你可以将$ resource的多个实例包装到一个服务中......

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

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

  return r1;
});