2012-04-30 5 views
11

mi hanno questo tipo di risorsa: var Products = $resource('companies/:companyId/products') Il problema è che vorrei ottenere i prodotti di tutte le società da url companies/products, ma utilizzando risorse e non fornendo CompanyID sto ottenendo companies//products. Probabilmente potrei usare un altro URL, come solo /products, ma vuol dire che devo avere un'altra risorsa per la stessa cosa?parametri URL opzionali in AngularJs Resource

In questo semplice caso, è possibile modificare l'URL in companies/products/:companyId, ma sembra essere un caso abbastanza generale.

risposta

13

Sì, attualmente è necessario definire un'altra risorsa $.

Ma si può avvolgere più istanze di $ risorsa in un unico servizio, se si desidera ...

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

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

    return r1; 
}); 
+0

cosa succede se si desidera catena 3 risorse di differenza, come vorrei che assomiglia? – abstractpaper

+0

Ho provato questa soluzione ma mostra ancora i '/ companies // products' di r1 anche se' companyId' è vuoto. – abstractpaper