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;

私はSenchatouchを初めて使用するので、間違っていることについてアドバイスをいただければ幸いです。

4

2 に答える 2

1

You have to check property phantom: true of the new created model. If it is not set or is false the proxy will not synchronize it is remote store, but keeps only in store's 'memory' :)

I'd advise save your event record via model.save() rather than store's sync() call. Have a look at http://docs.sencha.com/touch/2-0/#!/api/Ext.data.Model-method-save. Proxy can be defined for Model as far as for Store.

Cheers, Oleg

于 2012-08-01T16:30:57.550 に答える
0

問題が解決しました!sencha touchを最新バージョンに更新するだけで、すべて正常に機能します。

于 2012-08-01T13:33:53.580 に答える