【问题标题】:Javascript Titanium, Looped label only show the last data out of the arrayJavascript Titanium,循环标签仅显示数组中的最后一个数据
【发布时间】:2014-05-19 07:07:56
【问题描述】:

我制作了一个循环并在 var 标签中使用它。这个想法是它将显示数据数组中的每一行。不幸的是,它只显示最后一行。请帮帮我:/

这是我的代码:

for (var i=0; i<data.length; i++) {
item = data[i];



var togetherh = Titanium.UI.createLabel({

text : data[i].instelling_title,
font : {
    fontSize : 24,
    fontFamily : 'Helvetica Neue',
    fontWeight : 'bold'
},
color : 'black',
top : '10',
width : '100%',
textAlign : 'center',
height : 'auto',
left : 'auto',
touchEnabled : false

});

var together = Titanium.UI.createLabel({

text : data[i].instelling_id + '  ' + data[i].instelling_desc,
font : {
    fontSize : 12,
    fontFamily : 'Helvetica Neue'
},
color : 'black',
top : '50',
width : '85%',
textAlign : 'left',
height : 'auto',
left : 18,
touchEnabled : false

});
}

这是我的数据数组:

var data = [
 {item: 'SCALDA 1', instelling_title: 'Scalda', instelling_desc: ''},
 {item: '14', instelling_title: 'Scalda', instelling_desc: ''},
 {item: '15', instelling_title: 'Scalda', instelling_desc: ''},
 {instelling_id: '16', instelling_title: 'Scalda', instelling_desc: ''},
 {instelling_id: '17', instelling_title: 'Scalda', instelling_desc: ''},
 {instelling_id: '18', instelling_title: 'Scalda', instelling_desc: ''},
 {instelling_id: '19', instelling_title: 'Scalda', instelling_desc: ''},
 {instelling_id: 'ROC22', instelling_title: 'ROC', instelling_desc: ''},
 {instelling_id: '21', instelling_title: 'Scalda', instelling_desc: ''},
 {instelling_id: '22', instelling_title: 'Scalda', instelling_desc: ''},
 {instelling_id: '13', instelling_title: 'Scalda', instelling_desc: ''},
 {instelling_id: '12', instelling_title: 'Scalda', instelling_desc: ''},
 {instelling_id: '3', instelling_title: 'Scalda', instelling_desc: ''},
 {instelling_id: '4', instelling_title: 'Scalda', instelling_desc: ''},
 {instelling_id: '5', instelling_title: 'Scalda', instelling_desc: ''},
 {instelling_id: '6', instelling_title: 'Scalda', instelling_desc: ''},
 {instelling_id: '799', instelling_title: 'ROC', instelling_desc: ''},
 {instelling_id: '8', instelling_title: 'Scalda', instelling_desc: ''},
 {instelling_id: '9', instelling_title: 'Scalda', instelling_desc: ''},
 {instelling_id: '10', instelling_title: 'Scalda', instelling_desc: ''},
 {instelling_id: '11', instelling_title: 'Scalda', instelling_desc: ''},
 {instelling_id: '23', instelling_title: 'Scalda', instelling_desc: ''}
];

谁能帮我解决这个问题? 提前致谢!!

【问题讨论】:

    标签: javascript arrays for-loop titanium


    【解决方案1】:

    试试这样:

    var lblArr = [];
    
    for(var i=0;i<5;i++){
        lblArr[i] = Ti.UI.createLabel({
            text : i
        });
        Win.add(lblArr[i]);
    }
    

    您正在循环中创建具有相同名称的label,因此所有以前的标签都被覆盖,只剩下最后一个标签,这就是为什么您只得到最后一个标签。通过将标签推送到数组中,所有标签都被分开,您可以获得所有标签。

    希望这会对您有所帮助。 :)

    【讨论】:

    • 最好解释一下为什么你的代码可以解决问题。见How to Answer
    • 不起作用,尝试了很多不同的方法。任何建议:/?感谢您的回答^^。
    • 谢谢,你也知道为什么我只能把它放在 Ti.UI.currentWindow 而不是我的 scrollView 中。此外,所有标签都位于我屏幕上的同一位置。还有什么建议吗? :p 感谢您对循环的帮助。像魅力一样工作!
    • @user3493487 尝试将layout : 'vertical' 属性赋予Win 或要添加标签的父视图。
    猜你喜欢
    • 2016-07-08
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多