2016-03-23 8 views
0

appceleratorのURLからJSONデータを解析しようとしました。私はすべてのデータを解析し、それをリストビューで調べようとしました。ただし、解析されたデータの最後の項目のみを表示します(10個の値が利用可能な場合は、10番目の値のみを表示します)。ここに私のコードとXMLデータがあります。解析されたリストアイテムが正しくappsereratorに表示されない

var contactList = []; 

    var contactsArray,cId,cName,cEmail,cAddr,cGender; 
    var xhr = Ti.Network.createHTTPClient({ 

     onload : function() { 

      var jsonParse = JSON.parse(this.responseText); 

      for (var i = 0; i < jsonParse.contacts.length; i++) { 
       contactsArray = jsonParse.contacts[i]; 

       cId = contactsArray.id; 
       cName = contactsArray.name; 
       cEmail = contactsArray.email; 
       cAddr = contactsArray.address; 
       cGender = contactsArray.gender; 

       var elementData; 
       contactList = []; 

       contactData = { 
        "name_label" : { 
         text : cName, 
        }, 
        "email_label" : { 
         text : cEmail, 
        }, 
        "addr_label" : { 
         text : cAddr, 
        }, 
        "gender_label" : { 
         text : cGender, 
        }, 
        "template" : "list_template_wh", 
        "properties" : { 
         itemId : cId, 
         backgroundColor : "transparent" 
        } 
       }; 
       contactList.push(contactData); 
      }; 
      $.contactListView.sections[0].setItems(contactList); 
     }, 

     onerror : function() { 
      Ti.API.debug(e.error); 
     }, 
     timeout : 5000 
    }); 
    xhr.open("GET", Alloy.Globals.AppURL); 
    xhr.send(); 


    This is my xml code 


<Alloy> 
    <Window id="win_main" title="Window Main"> 
     <ListView id="contactListView" > 
      <Templates> 
       <ItemTemplate name="list_template_wh" id="list_temp_wh"> 
        <View id="list_item_container"> 
         <Label bindId="name_label" id="contact_name"/> 
         <Label bindId="email_label" id="contact_email"/> 
         <Label bindId="addr_label" id="contact_addr"/> 
         <Label bindId="gender_label" id="contact_gen"/> 
        </View> 
       </ItemTemplate> 
      </Templates> 
      <ListSection/> 
     </ListView> 
    </Window> 
</Alloy> 

ご協力いただければ幸いです。ありがとう

答えて

3

これは、ループ内にcontactList配列を再定義したためです。 ループ内でvar elementData;の後にcontactList = []; justeを削除します。

+0

ありがとうThomas ... It works :) :) – Dev786

関連する問題