AngularJs Resource中的可选url参数

pet*_*lex 11 javascript angularjs

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

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

Voj*_*jta 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;
});
Run Code Online (Sandbox Code Playgroud)