记住 selectfield sencha touch

Posted

技术标签:

【中文标题】记住 selectfield sencha touch【英文标题】:Remember selectfield sencha touch 【发布时间】:2015-02-08 17:06:00 【问题描述】:

如何在sencha touch中storeselectfield,这样当一个字段被选中时,任何方法使用的值,但是当页面刷新时,它会自动选择上一个选择。

我的代码:

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

【问题讨论】:

@jenson-button-event 这是什么? 【参考方案1】:

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

编辑

对于 Sencha Touch,您实际上应该按照文档 here 使用 LocalStorage 代理 文档中有一个示例显示如何保存用户特定信息以供以后检索(刷新后等)

我实际上已经在我自己的应用程序中使用了这一点,方法是在我的应用程序中保存用户显示首选项,这样当他们下次登录时,用户界面就和他们离开时一样。

商店:

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 版本中可能略有变化。但这肯定会让您上路。

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于记住 selectfield sencha touch的主要内容,如果未能解决你的问题,请参考以下文章

Sencha Touch selectfield 项目选择问题

材质 UI 在点击“选项卡”时未选择 SelectField

Flask WTForms 动态表单依赖项 selectField 未填充在编辑页面中

浏览器地址自动填充不会填充“状态”SelectField 元素

如何使我的烧瓶 wtforms SelectField 看起来像一个下拉列表?

selectfield添加了Jquery选项,如何保存所选选项