本地存储检索问题-sencha touch 2



我可以成功地将数据保存到本地存储并检索它。但是,如果我刷新浏览器,然后尝试调用本地存储中的数据,它将无法做到这一点。我是这样保存数据的;

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的新手,非常感谢任何关于我做错了什么的建议。

您必须检查新建模型的属性phantom:true。如果它没有设置或为false,代理将不会同步它是远程存储,但只保留在存储的"内存"中:)

我建议通过model.save()保存事件记录,而不是通过store的sync()调用。看看http://docs.sencha.com/touch/2-0/#/api/Ext.data.Model-method-save.Proxy既可以为Model定义,也可以为Store定义。

干杯,Oleg

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

最新更新