如何在sencha touch中的列表视图中加载localstorage数据?

时间:2014-02-12 10:36:56

标签: sencha-touch

如何在sencha touch中的列表视图中加载本地存储数据?

我有我的模特:

Ext.define('SenchaWebWorker.model.tweetsModel', {
extend: 'Ext.data.Model',
requires:['Ext.data.proxy.LocalStorage'],
config: {
    fields: [
    { name: 'id', type: 'string' },
    { name: 'text', type: 'string' },
    { name: 'date', type: 'string' },
    { name: 'uname', type: 'string' },
    { name: 'uid', type: 'string' },
    { name: 'uimgurl', type: 'string' }
    ],
    proxy: {
        type: 'localstorage',
        id  : '_tweetStore'
    }
}});

和我的商店:

Ext.define('SenchaWebWorker.store.tweetStore', {
extend: "Ext.data.Store",
config: {
    storeId: '_tweetStore',
    model: 'SenchaWebWorker.model.tweetsModel',
    autoLoad:true
}});

请给我一些可能的例子。 感谢。

2 个答案:

答案 0 :(得分:4)

这很简单,只需在列表的配置对象中引用您的商店,即:

Ext.define('MyApp.view.MyList', {
extend: 'Ext.dataview.List',
xtype: 'MyList',
config: {
    store : 'MyStore',
    itemTpl : document.getElementById('tpl_my_list').innerHTML
}
});

答案 1 :(得分:0)

您需要做的就是将list的store属性设置为_tweetStore

Ext.define('SenchaWebWorker.view.tweetsList', {
    extend: 'Ext.List',
    xtype: 'tweetlist',
    config: {
           store:'_tweetStore',
           scrollable:true,
           scrollToTopOnRefresh:true,
           deselectOnContainerClick:true,       

           ............
           ............

    }
});

由于您将autoLoad设置为true,因此无需显式加载商店数据。