0

我可以成功地将数据保存到本地存储并检索它。但是,如果我刷新我的浏览器,然后尝试调用本地存储中的数据,它就会失败。我正在像这样保存数据;

var eventStore = Ext.getStore('Details');

if(null == eventStore.findRecord('id', currentEvent.data.id)) {
    eventStore.add(currentEvent);
}

eventStore.sync();

eventStore.sort([{ property: 'dateCreated', direction: 'Desc' }]);

console.log('Data saved, store has ' + eventStore.getCount() + ' items');
console.log(localStorage);

当我刷新浏览器并检查控制台时,该条目就在那里,但是当我尝试像下面这样调用它时,它失败了。

var store = Ext.getStore('Details');
var storeId = store.findRecord('id', 'LC');
console.log('Details store has ' + store.getCount() + ' items');
console.log(storeId.data.id);
return;

我是 Sencha touch 的新手,非常感谢任何关于我做错了什么的建议。

4

2 回答 2

1

您必须检查属性phantom: true新创建的模型。如果未设置或为假,代理将不会同步它是远程存储,但仅保留在存储的“内存”中:)

我建议通过model.save()而不是 store 的 sync() 调用保存您的事件记录。看看http://docs.sencha.com/touch/2-0/#!/api/Ext.data.Model-method-save。代理可以为模型定义为商店。

干杯,奥列格

于 2012-08-01T16:30:57.550 回答
0

问题解决了!只需将 sencha touch 更新到最新版本,一切正常。

于 2012-08-01T13:33:53.580 回答