【问题标题】:Parsed list items not correctly shown in appcelerator解析的列表项未在 appcelerator 中正确显示
【发布时间】:2016-03-23 10:05:06
【问题描述】:

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

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

【问题讨论】:

    标签: javascript appcelerator appcelerator-titanium


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2018-11-05
      • 1970-01-01
      • 2013-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多