2012-04-30 148 views
11

我有這種資源:var Products = $resource('companies/:companyId/products') 問題是,我想通過url companies/products獲得所有公司的產品,但使用資源而不提供companyId我得到companies//products。也許我可以使用另一個網址,例如/products,但這是否意味着我必須擁有另一個資源才能執行相同的操作?AngularJs中的可選url參數資源

在這種簡單的情況下,我可以將url更改爲companies/products/:companyId,但它似乎是相當普遍的情況。

回答

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 //產品'。 – abstractpaper