2012-04-30 5 views
11

Ich habe diese Art von Ressource: var Products = $resource('companies/:companyId/products') Das Problem ist, dass ich die Produkte aller Unternehmen von URL bekommen möchte companies/products, aber unter Verwendung von Ressourcen und nicht CompanyID Bereitstellung ich companies//products bin immer. Wahrscheinlich könnte ich eine andere URL verwenden, wie nur /products, aber bedeutet das, dass ich eine andere Ressource für die gleiche Sache haben muss?Optional URL-Parameter in AngularJS Ressourcen

In diesem einfachen Fall konnte ich die URL zu companies/products/:companyId ändern, aber es scheint ziemlich allgemeiner Fall zu sein.

Antwort

13

Ja, momentan müssen Sie eine andere $ Ressource definieren.

Aber Sie können mehrere Instanzen von $ resource in einem einzigen Service wickeln, wenn Sie wollen ...

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

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

    return r1; 
}); 
+0

was ist, wenn Sie an die Kette 3 Unterschied Ressourcen wollen, wie das aussehen würde? – abstractpaper

+0

Ich habe diese Lösung ausprobiert, aber es zeigt immer noch '/ companies // products' von r1, auch wenn 'companyId' leer ist. – abstractpaper

Verwandte Themen