2016-03-23 8 views
0

Ich habe versucht, JSON-Daten von URL in appcelerator zu analysieren. Ich habe alle Daten analysiert und versucht, sie in einer Listenansicht auszugeben. Es wird jedoch nur das letzte Element in den geparsten Daten angezeigt (wenn 10 Werte verfügbar sind, wird nur der 10. Wert angezeigt). Hier sind meine Code- und XML-Daten.Geparste Listenelemente, die in appcelerator nicht korrekt angezeigt werden

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> 

Jede Hilfe wird sehr geschätzt. Danke

Antwort

3

Das ist, weil Sie das Array contactList in Ihrer for-Schleife neu definieren. Entfernen Sie contactList = []; Juste nach var elementData; innerhalb Ihrer Schleife.

+0

Danke Thomas ... Es funktioniert :) :) – Dev786