2017-10-03 13 views
0

상점의 데이터 양만큼 JSON 데이터를 호출하려고합니다. 다음은 코드입니다 :상점 loadData 메소드의 데이터 형식이 잘못됨. ExtJS

storeASF.each(function(stores) { 
    var trano = stores.data['arf_no']; 
    Ext.Ajax.request({ 
     results: 0, 
     url: '/default/home/getdataforeditasf/data2/'+trano+'/id/'+id, 
     method:'POST', 
     success: function(result, request){ 
      var returnData = Ext.util.JSON.decode(result.responseText); 
      arraydata.push(returnData); 

      Ext.getCmp('save-list').enable(); 
      Ext.getCmp('cancel-list').enable(); 

     }, 
     failure:function(action){ 
      if(action.failureType == 'server'){ 
       obj = Ext.util.JSON.decode(action.response.responseText); 
       Ext.Msg.alert('Error!', obj.errors.reason); 
      }else{ 
       Ext.Msg.alert('Warning!', 'Server is unreachable : ' + action.response.responseText); 
      } 
     } 
    }); 
    id++; 
}); 
storeARF.loadData(arraydata); 

StoreASF는 Ajax 요청 url의 매개 변수로 사용될 데이터 [arf_no]를 포함합니다. StoreASF에는 오브젝트 저장소의 둘 이상의 세트가 포함될 수 있으므로 루핑이 가능합니다. 요청 된 모든 JSON 데이터는 배열 데이터에 저장되며 루핑이 완료된 후 loadData 메소드를 사용하여 storeARF에 저장합니다.

loadData는 JSON 유형 데이터 만 읽을 수 있기 때문에 데이터 형식이 잘못되었습니다. JSON stringify 및 구문 분석을 이미 시도했지만 데이터 형식을 복제 할 수 없습니다. 어떤 제안이 어떻게하는 방법? 고맙습니다.

답변

0

Ext.util.Json.decode()을 사용하는 대신 자신의 논리를 사용하여 success() 방법으로 데이터를 표준화하십시오. 예 :

success: function (response) { 
      console.log(response); 
      var myData = []; 
      Ext.Array.forEach(response.data, function (item) { 
       myData.push({ 
        name: item.name, 
        email: item.email, 
        phone: item.phone 
       }); 
      }); 
      store.load(); 
}