Sencha touch 2如何在视图中引用列表项?

时间:2013-04-03 12:19:51

标签: javascript sencha-touch sencha-touch-2

我是Sencha Touch的新手。我在视图中有一个列表。我想在视图的初始函数中引用列表。在函数中,我将把商店设置为列表。

我的观点:

Ext.define('NCAPP.view.tablet.MainMenu',{
extend:'Ext.Container',
xtype:'mainMenu',
    id:'mainMenu',

    requires:['Ext.TitleBar','Ext.dataview.List'],
config:{
            loggedInUser:'',
    fullscreen:true,
            tabBarPosition: 'top',
    items:[{
        xtype:'titlebar',
        title:'NetCenter APP',
        items:[{
               xtype:'list',
               id:'menuList',
               itemCls:'listItem'
            }
        ]

    }]


},

    initialize: function () {
        Ext.Viewport.setMasked({
               xtype: 'loadmask',
               message: 'Loading ...'
           });
           var moduleStore=Ext.create('NCAPP.store.Module');
           moduleStore.load({
               callback:function(records,operation,success){
                    Ext.Viewport.setMasked(false);
                    // I would like to refer to the list here and set store to it
                    var menu=this.menulist;
                    menu.setStore(moduleStore);
                    console.log(records);
               },
               scope:this
           });
    }
});

有人能帮帮我吗?感谢

我的模特:

Ext.define('NCAPP.model.Module', {
extend:'Ext.data.Model',

config:{
    fields:[
        { name:'id', type: 'int'},
        { name: 'name', type: 'string'},
        { name: 'description', type:'string'}
        ]
}

});

我的商店:

Ext.define('NCAPP.store.Module',{
extend:'Ext.data.Store',

config: {
    model:'NCAPP.model.Module',

    autoLoad:false,
    proxy: {
        type:'rest',
        url:NCAPP.app.baseApiUrl+'/user/module/1/',
        noCache: false,

        //limitParam: false,
        //enablePagingParams: false,
       // startParam: false,

        reader: {
            type:'json',
            rootProperty:'modules'
        }


    }

}

});

1 个答案:

答案 0 :(得分:2)

由于您已经为列表设置了id,因此您只需使用Ext.getCmp()来检索您的列表:

var menu = Ext.getCmp("menuList");
menu.setStore(moduleStore);

要在之后填充列表,请尝试refresh

menu.refresh();