2012-04-30 12 views
11

में वैकल्पिक url पैरामीटर मैं संसाधन के इस प्रकार है: var Products = $resource('companies/:companyId/products') समस्या यह है, कि मैं यूआरएल companies/products द्वारा सभी कंपनियों के उत्पादों को प्राप्त करना चाहते हैं, लेकिन संसाधन का उपयोग करने और companyId मैं companies//products हो रही है प्रदान नहीं। शायद मैं सिर्फ /products की तरह एक और यूआरएल का उपयोग कर सकता हूं, लेकिन क्या इसका मतलब यह है कि मुझे एक ही चीज़ के लिए एक और संसाधन होना चाहिए?AngularJS संसाधन

इस साधारण मामले में मैं यूआरएल को 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

मैंने इस समाधान की कोशिश की है लेकिन यह अभी भी आर 1 की '/ कंपनियां // उत्पाद' दिखा रही है, भले ही 'कंपनी आईडी' खाली हो। – abstractpaper