2013-11-25 15 views
6

Mam zapakowaną w klawiaturę aplikację sencha touch (v1.1.1), która ma kilka sklepów i listę.Sklep/lista nie przeładowuje się Sencha 1.1.1

Problem występuje po zalogowaniu się jako „User1”, a następnie wylogować i zalogować ponownie jako „User2”. Lista nie zostanie odświeżona z danymi nowego konta pobranymi przez proxy sklepu.

Jestem obecnie próbuje zadzwonić .refresh() na List się, które zgodnie z docs spowoduje również sklep, aby odświeżyć swoje dane (chociaż mam to robić ręcznie przed ręką tak)

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

Próbowaliśmy również .sync() sklepów bez wyników.

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

Każdy pomysł na problem, czy ktoś ma coś podobnego?

Odpowiedz

1

To brzmi jak problem z buforowaniem. lub problem państwowy. link: http://html5wood.com/sencha-touch-difference-between-ext-get-and-ext-getcmp/

ze strony: Sencha dotykowy: Różnica między Ext.get() i() Ext.getCmp

Ważne: powraca ten sam element obiektu ze względu na prosty buforowania na zdobycie ponownie . Oznacza to, że zwraca nieprawidłowy element w czasie sekund. Do uniknięcia tego problemu można użyć metody ext.fly().

nadzieję, że pomoże mike.

3

refresh nie przeładuje sklepu, po prostu zgarnie wszystko, co jest w sklepie i ponownie wyświetli widok.

sync służy do aktualizacji sklepu, gdy masz lokalne zmiany i publikujesz je na serwerze.

Należy wywołać metodę load w sklepie.

+0

Dlatego prosiłem o przykład kodu, musisz odtworzyć sklep lub całkowicie go opróżnić, bez wywoływania synchronizacji, lub po prostu odtworzyć go ponownie :) – Sangoku

+0

Nie, wszystko, co musisz zrobić, to wyzwolić ładunek. Wysyła żądanie do serwera, a gdy wróci, uruchomi zdarzenie, którego słucha lista, i samo się odświeży. –

0

może załadować sklepu za każdym razem

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

lub można spróbować jasnego sklepu formularz danych i załaduj go ponownie

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

Pamiętaj, że używam Sencha 1.1.1 - nie ma metody "removeAll()" lub "load()" dla list. – ahren

Powiązane problemy