处理远程数据(表数据 - 未定义)

时间:2015-01-25 13:50:03

标签: json http titanium-mobile

遵循文档here

我有自己的带有JSON数据的Web服务,仅用于测试目的here

Ti.API.info('收到的文字:'+ this.responseText);在控制台中显示JSON,但是当我尝试在表格中显示时,我得到了未定义的内容?

文档示例使用json.figters.length ---我使用了json.places.length,因为它是我的Web应用程序上数组列表中的名称。

var win = Ti.UI.createWindow();
var table = Ti.UI.createTableView();
var tableData = [];
var json, places, place, i, row, countryLabel, capitalLabel;

var xhr = Ti.Network.createHTTPClient({
onload : function(){


Ti.API.info('Received text: ' + this.responseText);

json = JSON.parse(this.responseText);
for (i=0; i < json.places.length; i++)
{
    place = json.places[i];
    row = Ti.UI.createTableViewRow({
        height: '60dp'
    });
    countryLabel = Ti.UI.createLabel({
        text: place.country,
        font:{
            fontSize:'24dp'
    },
        height: 'auto',
        left: '10dp',
        top: '5dp',
        color: '#000',
        touchEnabled:false
    });
    capitalLabel = Ti.UI.createLabel({
        text:'"' + place.captial + '"',
        font:{
            fontSize:'16dp'
        },
        height: 'auto',
        left: '15dp',
        top: '5dp',
        color: '#000',
        touchEnabled:false
    });

    row.add(countryLabel);
    row.add(capitalLabel);
    tableData.push(row);
}//end for

table.setData(tableData);
},

onerror: function() {
Ti.API.info('error, HTTP status = ' + this.status);
alert('Error Reading Data');
},
timeout:5000

});

xhr.open("GET", "http://130.206.127.43:8080/Test"); 
xhr.send();

win.add(table);
win.open();

1 个答案:

答案 0 :(得分:0)

你将2个标签推入一行,但是一行没有包装器视图。

尝试这样的事情:

var rowView Ti.UI.createView({height: 60, layout: 'horizontal'});
rowView.add(countryLabel);
rowView.add(capitalLabel);

row.add(rowView);

tableData.push(row);