2013-08-29 11 views
6

मैं एक AngularJS संसाधन के कार्यों की एक जोड़ी द्वारा जोड़ा जा रहा, लेकिन जब मैं कार्रवाई आह्वान, मेरे transformRequest समारोह नहीं कहा जा रहा है:

var _resource = $resource('api/NewItem/:id', 
    { id: '@id' }, 
    { 
     create: { 
      method: 'POST', 
      transformRequest: function (data, headersGetter) { 
       var result = JSON.stringify(data.productIntro); 
       return result; 
      } 
     }, 
     update: { 
      method: 'PUT', 
      transformRequest: function (data, headersGetter) { 
       var result = JSON.stringify(data.productIntro); 
       return result; 
      } 
     } 
    }); 

अगर मैं जोड़ने समारोह विश्व स्तर पर एप्लिकेशन पर, यह काम करता है:

var newItemApp = angular.module('newItemApp', ['ngResource']) 
.config(function ($httpProvider) { 
    $httpProvider.defaults.transformRequest = function(data) 
    { 
     if (data === undefined) { 
      return data; 
     } 
     var result = JSON.stringify(data.productIntro); 
     return result; 
    }; 
}); 

मैं क्या करने की जरूरत है किसी भी पद से मूल तत्व हटाने या कार्रवाई डाल क्योंकि डिफ़ॉल्ट मॉडल वेब एपीआई में बाध्यकारी जब उस वस्तु एक json वस्तु बाध्य नहीं करता है एक नाम रूट है।

उत्तर

5

transformRequestAngularJS 1.1.2 से समर्थित है। यदि आप प्रारंभिक संस्करण का उपयोग करते हैं, तो आपको इसे $httpProvider में जोड़ना होगा।

+0

यूप - मैंने सोचा कि हमारे पास हमारे निर्माण में नवीनतम संस्करण था, लेकिन मैं गलत था। धन्यवाद! – Stuart

+0

मेरे पास एक ही समस्या थी - मैं कॉल कर रहा था। $ मेरे संसाधन पर सहेज रहा था लेकिन 'बनाना' पर परिवर्तन की आवश्यकता थी। – Ponny

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