0

カスタムループ内で配列値を取得する最良の方法を見つけようとしています。これが私のコードです。これが有効な方法なのか、それとも別の方法があるのか​​ わかりません。

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();

ありがとうございました。

4

1 に答える 1

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);
});
于 2011-11-03T22:50:40.653 に答える