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

时间:2016-03-23 10:05:07

标签: javascript appcelerator appcelerator-titanium

我试图从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>

任何帮助都将深表感谢。三江源

1 个答案:

答案 0 :(得分:3)

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