我有这种资源:var Products = $resource('companies/:companyId/products')
问题是,我希望通过网址companies/products
获取所有公司的产品,但是使用资源而不提供companyId我得到companies//products
。可能我可以使用另一个网址,比如/products
,但这是否意味着我必须为同一个东西拥有另一个资源?
在这个简单的例子中,我可以将网址更改为companies/products/:companyId
,但这似乎是非常普遍的情况。
答案 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;
});