记住selectfield sencha touch

时间:2015-02-08 17:06:00

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

如何store在sencha中selectfield触摸,以便在选择字段时,使用任何方法使用的值,但在刷新页面时,会自动选择上一个选择。 / p>

我的代码:

          {
                xtype: 'fieldset',
                items: [{
                    xtype: 'selectfield',
                    id: 'remem',
                    label: 'MY Label',
                    store: 'remem',
                    options: [
                    {
                        text: 'Option1',
                        value: 'a'
                    },
                     {
                        text: 'Option2',
                        value: 'b'
                    }]
}]
}

2 个答案:

答案 0 :(得分:1)

@developer,@ jenson和我建议您将值保存在cookie中,以便在浏览器刷新之间保持该值。如果我没记错的话,Extjs会在实用程序命名空间中提供一个cookie管理器类。

修改

对于Sencha Touch,您应该根据文档here实际使用LocalStorage代理 文档中有一个示例,说明如何保存用户特定信息以便以后(刷新后等)进行检索

我实际上是通过在我的应用程序中保存用户显示首选项来将此用于我自己的应用程序,因此当他们下次登录UI时就像他们离开时一样。

商品

Ext.define('MyApp.store.UserPreferencesStore', {
    extend: 'Ext.data.Store',

    requires: [
        'MyApp.model.UserPreferencesModel',
        'Ext.data.proxy.LocalStorage'
    ],

    config: {
        model: 'MyApp.model.UserPreferencesModel',
        storeId: 'UserPreferencesStore',
        proxy: {
            type: 'localstorage',
            id: 'userpreferences'
        }
    }
});

<强>模型

Ext.define('MyApp.model.UserPreferencesModel', {
    extend: 'Ext.data.Model',

    requires: [
        'Ext.data.Field'
    ],

    config: {
       fields: [
            {
                name: 'userPrefKey'
            },
            {
                name: 'userPrefValue'
            }
        ]
    }
});

使用此设置,您可以像往常一样为任何其他商店添加记录

store.add({userPrefKey: '01-showMap', userPrefValue: true});

或编辑现有条目

rec = store.findRecord('userPrefKey','01-showMap');
rec.set('userPrefValue',false);

每当您想要保存更改时,您还必须在商店中调用sync(),并从本地存储中检索已保存的记录,只需调用load(),就像任何其他商店一样。

请注意,我的代码是针对Touch 2.3编写的,因此在最近的2.4.x版本中可能略有变化。但这肯定会让你顺利。

答案 1 :(得分:0)

将select字段值存储到localstorage中,并在刷新页面时将该值分配给selectField。因此,您将始终获得之前选定的值。