Titanium mobile,通过自定义循环获取数组值的最佳方式

时间:2011-11-03 15:51:24

标签: javascript android ios titanium titanium-mobile

我试图找出在自定义循环中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();

谢谢。

1 个答案:

答案 0 :(得分:3)

您的解决方案是可以接受的,并且在概念上与我的方法类似。但是,我建议您在必要时始终为此自定义数据使用唯一的属性名称,并允许它使用对象存储许多属性及其值。如果将来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);
});