2013-11-25 5 views
6

У меня есть приложение, связанное с телефоном sencha touch (v1.1.1), в котором есть несколько магазинов и список.Store/List not reloading Sencha 1.1.1

Проблема возникает после того, как вы вошли в систему как «user1», а затем выйти и снова войти в систему как «Пользователю2». Список не обновится с новыми данными учетной записи, полученными прокси-сервером store.

Я в настоящее время пытается вызвать .refresh() на List себя, что в соответствии с Документами также приведет в магазин, чтобы обновить свои данные (хотя, я вручную делать это перед рукой так или иначе)

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

Это звучит как проблема с кешированием. или проблема состояния. ссылка: http://html5wood.com/sencha-touch-difference-between-ext-get-and-ext-getcmp/

со страницы: Сенча Touch: Разница между Ext.get() и Ext.getCmp()

Важно: Он возвращает тот же объект элемента из-за простого кэширования на получение еще раз , Это означает, что он возвращает неправильный элемент на второй раз. Ext.fly() может использоваться для предотвращения этой проблемы.

надеюсь, что это поможет микрофон.

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