【发布时间】:2012-02-10 16:17:01
【问题描述】:
我的设置
- Safari 5.1.2 (Macintosh)
- 煎茶触控 1.1
问题
过程
我有一个模型和一个商店。我使用此处记录的set(field,value) 方法更新记录:API - Set。更新字段后,我使用此处记录的save() 方法:API - Save。
结果
与商店绑定的任何列表中的记录都会更新,并且似乎已保存,但是当我重新加载网页时,旧值 > 显示。所以记录被更新,存储看到新数据,绑定到存储的列表刷新它们的显示,但本地存储中数据的实际表示永远不会更新。如果您使用浏览器控制台查找并检查带有var record = summaryStore.getAt(4) 之类的项目,您会发现dirty 属性为假,即使没有进行save() 调用。同样summaryStore.getUpdatedRecords() 返回一个空集,不管save() 方法是否被调用。
更多文档
代码
商店
var summaryStore = new Ext.data.Store({
model: 'EventSummary',
storeId: 'summaryStore',
sortOnLoad: true,
sorters: [
{
property: 'date',
direction: 'DESC'
}
],
proxy: {
type: 'localstorage',
id : 'summary-cache'
}
})
型号
Ext.regModel('EventSummary', {
fields: [
{name: 'child', type: 'string'},
{name: 'date', type: 'date'},
{name: 'description', type: 'string'},
{name: 'event_id', type: 'int'}
],
proxy: summaryStore.proxy
})
示例
var record = summaryStore.findExact('event_id', 90)
record.date = new Date();
record.description = 'Vitamin K Shot`
record.save()
之前和之后record.save(),dirty标志都是假的。 summaryStore.getUpdatedRecords() 在保存之前和之后返回一个空集。无论记录是否保存,汇总存储的所有列表都会反映所做的更改。
附加说明
商店由这个调用填充,它遵循商店和模型的声明。 summaryStore.load()
【问题讨论】:
标签: model proxy save sencha-touch local-storage