2012-08-01 56 views
0

我可以成功地将数据保存到本地存储并检索它。但是,如果我刷新浏览器并尝试重新调用本地存储中的数据,则无法这样做。 我像这样保存数据;本地存储检索问题 - 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触摸,并会非常感谢任何意见,我做错了什么。

回答

0

问题解决了! 只需更新sencha触摸到最新版本和所有作品应该如此。

1

你必须检查属性幻影:真新的模型。如果它没有设置或为false代理将不会同步它是远程存储,但只保留在商店的'内存':)

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

Cheers,Oleg