2013-11-25 6 views
8

मैं एक कारखाने कि मेरे लेख मॉडल के लिए $ संसाधन रिटर्न है:AngularJS संसाधन - PUT विधि आईडी नहीं मिल रहा है

angular.module('ADI.Resources').factory("Articles", ['$resource', function($resource) { 
    return $resource('/api/v1/article/:articleId', { 
     articleId: '@_id', 
     _shop: window.user._shop 
    }, { 
     update: { 
      method: 'PUT' 
     } 
    }); 
}]); 

GET, POST और DELETE अच्छी तरह से काम कर रहे हैं, लेकिन अद्यतन नहीं (डाल) । यहाँ कोड मैं का उपयोग किया जाता है: जब एक अद्यतन कर articleId पैरामीटर भरा नहीं है:

PUT http://localhost:3000/api/v1/article?_shop=100000000000000000000001 

के बजाय:

PUT http://localhost:3000/api/v1/article/300000000000000000000001?_shop=100000000000000000000001 

किसी भी विचार क्यों

Articles.update({articleId: '300000000000000000000001'}, function(article){ 
    console.log(article); 
}); 

यह इस अनुरोध को बना रहा है ? धन्यवाद!

+1

पुट अनुरोध में सामग्री भेजना चाहिए, यूआरएल में नहीं! – Fals

+0

धन्यवाद आपके उत्तर के लिए झूठ! यह वास्तव में आपके जैसे सामग्री में आलेख भेज रहा है। मुझे लगता है कि मैंने एपीआई की योजना बनाई जब मैंने एक त्रुटि की। – doobdargent

उत्तर

7

जैसा कि फल्स ने टिप्पणी में उल्लेख किया है, आलेख आईडी पैरामीटर अनुरोध सामग्री में था। तो मैंने इसे यूआरआई पर रखने के लिए एक छोटी सी चाल बनाई।

angular.module('ADI.Resources').factory("Articles", ['$resource', function($resource) { 
    return $resource('/api/v1/article/:articleId', { 
     articleId: '@_id', 
     _shop: window.user._shop 
    }, { 
     update: { 
      method: 'PUT', 
      params: { 
       articleId: "@articleId" 
      } 
     } 
    }); 
}]); 
+0

कुछ समय पहले कुछ त्रुटि के कारण, मैंने कोणीय गिट में कोई मुद्दा बनाया, और उन्होंने कहा कि इस भाग पर किसी भी परम का उपयोग न करें: '{ आलेख आईडी: '@_id', _shop: window.user._shop }, 'जब आप उन्हें अनुरोध में वैश्विक रूप से उपलब्ध नहीं करना चाहते हैं ... जब आप इसे किसी अन्य अनुरोध में सेट नहीं करते हैं, और आपके मॉडल में आपके पास समान बात है, तो यह मॉडल से उस मान को चुनें, और आपका यूआरएल जाएगा जंगली – deadManN

+0

आज भी, मैं एक और सेवा लिख ​​रहा हूं, और जब मैं उनका उपयोग नहीं करता, तो यह भेजता है? क्वेरी स्ट्रिंग्स: | बजाय... – deadManN

1

मैं एक ही समस्या थी, यहां मुद्दा यह निम्न पंक्ति के लिए किया गया था:

articleId: '@_id', 

कि लाइन किया जाना चाहिए:

articleId: '@articleId', 

articleId फिर से परिभाषित करने की आवश्यकता नहीं।

संबंधित मुद्दे