2013-11-25 9 views
6

Ho un'app touch sencha touch (v1.1.1) con poche ore di elaborazione e alcuni elenchi.Negozio/Elenco non ricaricato Sencha 1.1.1

Il problema si verifica dopo aver effettuato l'accesso come "Utente1", e poi uscite dal sistema e nuovamente come "Utente2". L'elenco non verrà aggiornato con i nuovi dati dell'account recuperati dal proxy del negozio.

Attualmente sto tentando di chiamare .refresh() sul List stesso, che secondo i documenti anche causare il negozio per aggiornare i suoi dati (anche se, sto facendo manualmente che prima di mano in ogni caso)

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

Abbiamo anche provato a .sync() i negozi senza risultati.

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

Qualche idea di quale sia il problema o qualcuno si imbattesse in qualcosa di simile?

risposta

1

Sembra un problema di memorizzazione nella cache. o un problema di stato. un link: http://html5wood.com/sencha-touch-difference-between-ext-get-and-ext-getcmp/

dalla pagina: Sencha tocco: Differenza tra Ext.get() e Ext.getCmp()

Importante: restituisce lo stesso oggetto elemento a causa della semplice memorizzazione nella cache sul recupero di nuovo . Significa che restituisce l'elemento sbagliato su secondo tempo. È possibile utilizzare Ext.fly() per evitare questo problema.

spero che aiuti mike.

3

refresh non ricaricherà lo store, ma solo quello che si trova nel negozio e restituisce nuovamente la vista.

sync è per l'aggiornamento del negozio quando hai modifiche locali e le stai postando sul server.

È necessario chiamare il metodo load nello store.

+0

è per questo che è stato chiesto per un esempio del codice, devi ricreare il negozio, o svuotarlo completamente, senza invocare la sincronizzazione, o semplicemente ricrearlo :) – Sangoku

+0

No, tutto ciò che devi fare è attivare un carico. Effettua una richiesta al server, quando ritorna, genera un evento che l'elenco ascolta e si aggiorna automaticamente. –

0

è possibile caricare il negozio ogni volta

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

oppure si può cercare di cancellare negozio sotto forma di dati e ricaricare nuovamente

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

Ricorda che sto usando Sencha 1.1.1 - non esiste un metodo 'removeAll()' o 'load()' per gli elenchi. – ahren