2014-07-21 11 views
21

के बजाय मैं नीचे एक जैसा कोणीय $ संसाधन का उपयोग कर रहा हूं।

[ 
    ['w','e','l','c','o','m','e'], 
    ['h','e','l','l','o'] 
] 

howerver, सर्वर को भेजता है:

['welcome','hello'] 

किसी को पता क्यों तार विभाजन मिल

angular.module('app') 
.factory('data', function ($resource) { 

    var Con = $resource('/api/data', {}, { 
     update : {method : 'PUT'} 
    }); 

    return {  

     getData : function (user_id, callback) { 

      return Con.query({user_id : user_id}, function (data) { 
       cb(data); // (breakpoint) HERE data is not good 
      }, function (err) { 
       cb(err); 
      }).$promise; 
     } 

    }; 
}); 

यह जब एक डेटा पर एक ब्रेकपाइंट डाल मैं क्या मिलता है?

धन्यवाद

उत्तर

39

आप कोणीय के $ संसाधन के साथ एक मजेदार बग जहां यह तार के एक कच्चे सरणी नहीं संभाल सकता है आई है; एक समाधान के रूप, आप कर सकते हैं तीन चीजों में से एक:

  • उपयोग $ http सेवा के बजाय
  • सर्वर जैसे के माध्यम से एक वस्तु लिपटे प्रतिक्रिया भेज: { "stuff" : [ "your", "strings" ] }
  • बल ऊपर प्रारूप में प्रतिक्रिया डेटा ग्राहक की ओर; $ संसाधन जैसे: methodName: {method:'GET', url: "/some/location/returning/array", transformResponse: function (data) {return {list: angular.fromJson(data)} }} और उसके बाद के रूप में data.list

इसे उपयोग https://stackoverflow.com/a/22491240/626810

+5

$ संसाधन वादा परिणाम का उपयोग भी जवाब देने यदि सर्वर JSON स्ट्रिंग – Claudiu

+0

अच्छा रिटर्न आवेदन करना होगा! इसने समस्या हल की। – Mateusgf

2

यह रॉ प्रतिक्रिया के लिए काम करता है पर मेरा उत्तर देखें। यह ऊपर दिए गए उत्तर से थोड़ा अलग संस्करण है लेकिन यह सामान्य है और न केवल JSON प्रतिक्रिया पर निर्भर है। यह मूल रूप से स्ट्रिंग प्रारूप में रॉ प्रतिक्रिया को बदल देगा। आप यह सवाल और के रूप में result.responseData

getAPIService() { 
    return this.$resource(this.apiUrl, {}, { 
     save: { 
      method: 'POST', 
      headers: { 
       'Accept': 'text/plain, text/xml', 
       'Content-Type': 'text/xml' 
      }, 
      transformResponse: function (data) { return { responseData: data.toString() } } 
     } 
    }); 
} 
संबंधित मुद्दे