2012-04-30 19 views
11

私は、リソースのこの種を持っている:var Products = $resource('companies/:companyId/products') 問題は、私は、URL companies/productsにより、すべての企業の製品を取得したいが、リソースを使用して、私はcompanies//productsを取得しています企業IDを提供しないこと、です。おそらく/productsのような別のURLを使用する可能性がありますが、同じことを別のリソースにする必要があるのでしょうか?オプションのURLパラメータ

この単純なケースでは、私はcompanies/products/:companyIdにURLを変更できますが、それはかなり一般的なケースです。

答えて

13

はい、現在、別の$リソースを定義する必要があります。

しかし、あなたがしたい場合は、単一のサービスに$リソースの複数のインスタンスをラップすることができます...

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

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

    return r1; 
}); 
+0

あなたがチェーン3差リソースにしたい場合は、どのようにそれが何のように見えるのでしょうか? – abstractpaper

+0

私はこの解決策を試しましたが、 'companyId'が空であってもr1の'/companies // products'を表示しています。 – abstractpaper

関連する問題