记住 selectfield sencha touch
Posted
技术标签:
【中文标题】记住 selectfield sencha touch【英文标题】:Remember selectfield sencha touch 【发布时间】:2015-02-08 17:06:00 【问题描述】:如何在sencha touch中store
selectfield
,这样当一个字段被选中时,任何方法使用的值,但是当页面刷新时,它会自动选择上一个选择。
我的代码:
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 元素