2013-11-25 6 views
6

私はいくつかの店舗とリストを持っているphonegap-wrapped sencha touch(v1.1.1)アプリを持っています。あなたは「ユーザー1」としてログインして、ログアウトして「ユーザー2」ように再度ログインしている後Store/List not reloading Sencha 1.1.1

問題が発生します。リストは、ストアプロキシによってフェッチされた新しいアカウントデータで更新されません。

は、私は現在のドキュメントによると、また、そのデータをリフレッシュするために店を原因となる、Listに自分自身を.refresh()を呼び出そうとしています(私は手動でやっている、が、そのとにかく手前)

var sL = Ext.getCmp('AccountsList'); 
sL.refresh(); 
sL.scroller.scrollTo({x:0,y:0}); 

我々はまた、結果のないストアを.sync()にしようとしました。

Ext.getStore('AccountsTransfersTo').sync(); 
Ext.getStore('AccountsTransfersFrom').sync(); 
Ext.getStore('AccountsStore').sync(); 

何が問題なのか、誰かが似たようなものに遭遇したことはありますか?

答えて

1

キャッシングの問題のようです。または状態の問題。 リンク: 煎茶タッチ::Ext.get()とExt.getCmp(の違い)

重要:ページから http://html5wood.com/sencha-touch-difference-between-ext-get-and-ext-getcmp/

それが再び取得に伴う簡単なキャッシングに同じ要素オブジェクトを返します。 。つまり、の第2のの時刻に間違った要素を返します。 Ext.fly()は、この問題を回避するために使用できます。

mike。

3

refreshは、ストアをリロードしません。ストア内のすべてのものを取得し、ビューを再レンダリングします。

syncは、ローカルに変更が加えられてサーバーに送信されているときにストアを更新するためのものです。

ストアでloadメソッドを呼び出す必要があります。

+0

それをリロードすることをロードします同期を呼び出さずにストアを再作成するか、まったく空にする必要があります。 – Sangoku

+0

いいえ、実行するだけで負荷が発生します。それはサーバーに要求し、戻ってくると、リストが聴いているイベントを起動し、それ自体が更新されます。 –

0

あなたは、店私はコードの例を求めた理由であるたびに

var sL = Ext.getStore('AccountsTransfersTo') 
sL.load(); 
sL.scroller.scrollTo({x:0,y:0}); 

か、明確なデータ形式の店にしようとすると、再び

var sL = Ext.getStore('AccountsTransfersTo') 
sL.removeAll(); 
sL.load(); 
sL.scroller.scrollTo({x:0,y:0}); 
+0

私はSencha 1.1.1を使っていることを覚えておいてください。リストには 'removeAll()'や 'load()'メソッドはありません。 – ahren