1

でメソッドが呼び出されるときに、Ext.dataview.Listからの値を動的に入力する必要があります。それを行う方法はありますか?私の次のコードでは、空を見ることができます。デバッグすると、正しく入力されていることがわかります。StoreControllerExt.dataview.ListstoreEvents2

可能であれば、コードのサンプルを提供してください。

populateViewsAfterLogIn: function (){
    var me = this;
    debugger
    var storeEvents2 =  Ext.getStore('Events2');
    storeEvents2.load();
    storeEvents2.sync();
    var myEventsList = me.getEventsList();
    myEventsList.initialize();
    myEventsList.data(storeEvents2);



},

お店

Ext.define('XXX.store.Events2',{
    extend: 'Ext.data.Store',
    requires: ['Ext.data.proxy.JsonP'],

    config:{
        model: 'XXX.model.Event2',
        proxy:{

            type:'jsonp',
            url: Configurations.listAllTimetableEventsCustom,
            reader:'json'
        },
        autoLoad:true,

        sorters: [{ property: 'DateTimeStart', direction: 'ASC'}] ,

        grouper: {
            groupFn: function(item) {
                return item.get('convDate');
            },
            sortProperty: 'groupSorterProp',
            direction: "ASC"
        }

    }
});

意見

Ext.define("XXX.view.EventsList", {

    extend: "Ext.dataview.List",
    alias: "widget.eventslist",
    config: {

        loadingText: "Loading Events...",
        emptyText: '<div class="notes-list-empty-text">No notes found.</div>',
        onItemDisclosure: false,
        itemTpl:    '<div class="list-item-title">\n\
                        <div class="list-item-title-row">\n\
                            <div class="bl-hours"><span class="timetable-hours">{DateTimeStartConverted}</span></div>\n\
                               <div class="bl-event">{EventTitle}</div>\n\
                        </div>\n\
                     </div>',
        grouped: true

    }
});
4

1 に答える 1

2

data()このメソッドは存在しないため、呼び出し時にエラーが発生するはずです。代わりにsetDataを使用してください。

アップデート

ストアの「ロード」イベントにバインドする必要があります

populateViewsAfterLogIn: function (){
    var me = this,
        store = Ext.getStore('Events2');
    debugger

    me.getEventsList().setStore(store );
    store.load();
}

setData()ストア インスタンスではなく、配列が必要です。あなたの場合、ストアをロードする前にリストにバインドする必要があります。その後、Sencha は何でも気にします。

于 2013-02-11T08:37:48.290 に答える