已解析的列表项未在 appcelerator 中正确显示

Parsed list items not correctly shown in appcelerator

我试图在 appcelerator 中解析来自 URL 的 JSON 数据。我解析了所有数据并尝试在列表视图中显示出来。但它只显示解析数据中的最后一项。(如果有 10 个值可用,它只显示第 10 个值)。这是我的代码和 XML 数据。

  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>

任何帮助将不胜感激。谢谢

那是因为您在 for 循环中重新定义了 contactList 数组。 在循环中删除 var elementData; 之后的 contactList = []; juste。