钛移动,最好的方式获得数组值与自定义循环

Titanium mobile, best way to get array value with custom loop

本文关键字:数组 自定义 循环 方式获 移动      更新时间:2023-09-26

我正试图找出在自定义循环中gey数组值的最佳方法。这是我的代码,我不确定这是否是一种有效的方式,或者有另一种方式:

var win = Ti.UI.createWindow({ backgroundColor: '#fff', layout:'vertical' });
    var data = [
    {title:'Row 1',customValue:'123'},  
    {title:'Row 2',customValue:'345'},  
    {title:'Row 3',customValue:'234'},
    ];
    for(var i = 0, l = data.length; l--; i++) {
    thisObject = data[i];   
    var container = Titanium.UI.createView({
        left: 10,
        right: 10,  
        customValue:thisObject.customValue
    });
    var label = Ti.UI.createLabel({
        text : thisObject.title,        
        width : 'auto',
        height : 25     
    });
    container.add(label);
    win.add(container);
    container.addEventListener('touchend', function(e) {        
        alert(this.customValue);            
    });
    }
    win.open();

谢谢。

您的解决方案是可以接受的,并且在概念上与我的方法相似。但是,我建议您在必要时始终为这个自定义数据使用唯一的属性名,并允许它通过使用对象来存储许多属性及其值。如果将来Appcelerator决定创建一个名为customValue的属性,你可能会满足于Titanium API,并经历不希望的结果。

传递/存储您的自定义数据:

var container = Titanium.UI.createView({
     left: 10,
     right: 10,
     myUniqueCustomDataObject: { customValue: thisObject.customValue }
});

像这样访问您的自定义数据对象属性:

container.addEventListener('touchend', function(e) {
     alert(this.myUniqueCustomDataObject.customValue);
});