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