0

だから私はTableViewの配列の単一のフィールドからの値でを埋めようとしていますCustom Objectsが、私TableViewが取得している配列で埋められていません。これは私のコードです:

function SearchWindow(){
    var self = Ti.UI.createWindow({
        backgroundColor:'#d0d0d0d'
    });
    var Cloud = require('ti.cloud');
    Cloud.debug=true;

    var searchBar = Ti.UI.createSearchBar({
        showCancel:false
    });
    var data = [];
    Cloud.Objects.query({
        classname:'Reservacion'
    }, function(e){
        if(e.success){
            for(var i=0; i< e.Reservacion.length; i++){
                data.push({title : e.Reservacion[i].nombre});
            }
        } else {
            alert('Error \n ' + ((e.error && e.message) || JSON.stringify(e)));
        }
    });

    var tableView = Ti.UI.createTableView({
        backgroundColor:'#d0d0d0',
        search:searchBar,
        data: data,
        filterAttribute : 'title'
    });

    self.add(tableView);
    return self;
}

nombre呼び出された からCustom Object呼び出されたフィールドの値でデータ配列を埋めていますReservacionが、データが に表示されていませんTable View。私のアプローチは間違っていますか?もしそうなら、どうすればTable View目的のデータを入力できますか?

4

1 に答える 1

1

テーブルビューを作成した後、 nombreフィールドの値をデータ配列にプッシュしています。これは、テーブル ビューが作成されたときに行がないことを意味するため、何も表示されません。これを修正するtableView.data = data;には、データが完全に入力された後に (Cloud.Objects.query コールバックで) 設定します。

指定せずにテーブル ビューをインスタンス化しますdata

var tableView = Ti.UI.createTableView({
    backgroundColor:'#d0d0d0',
    search:searchBar,
    filterAttribute:'title'
});

うまくいくことを願っています。

于 2012-08-14T18:14:59.657 に答える