0

Sencha Touch は初めてなので、まだストアの使い方に苦労しています。

このストアを作成しました。これを使用してリストを作成することに成功しています。

Ext.define('EventApp.store.events',{ 
        extend: 'Ext.data.Store',

        config: {
            model: 'EventApp.model.event',
            autoLoad: true,
            storeId: 'events',
            proxy:{
                type:'ajax',
                url: './resources/EventData.json',
                reader: {
                    type: 'json',
                    rootProperty: 'events'
                }
            }

            }

});

言及したように、このストアはリストから参照すると正しく機能し、その内容を表示できます。したがって、ストアが正しく定義されていると想定しています。

残念ながら、ビューの 1 つ (カルーセルの項目を入力するために使用されます) のコントローラーからストアにアクセスしようとすると、ストアからデータが返されないようです。私が使用しているコードは次のとおりです。

onEventCarouselInitialize : function(compon, eOptions) {
    var past = compon.getPast();
    var eventsStore = Ext.getStore('events');
    eventsStore.each(function(record){
        console.log('Record =',record); //<-- this never gets executed.
    },this);
}

eventsStore.sync() で eventsStore.load() を実行しようとしましたが、ストアで利用可能な要素を取得できないようです。

私は何が欠けていますか?

ありがとうオリオール

4

1 に答える 1

1

私が理解しているのは、アクセスしているときにストアデータがロードされていない可能性があるということです。したがって、500ミリ秒の遅延のために、この内部にストアに each() 関数を配置します。

Ext.Function.defer(function(){
    // Put each() here
}, 500);

多かれ少なかれ遅らせてみてください。

于 2013-10-31T07:09:15.307 に答える