Sencha Touch: перезагрузите NestedList и TreeStore после смены URL-адреса прокси - PullRequest
0 голосов
/ 06 февраля 2012

У меня есть и приложение, которое использует NestedList с TreeStore. TreeStore использует прокси типа AJAX и программу чтения XML. Теперь я реализовал страницу настроек, где вы можете изменить URL, который используется в качестве источника данных. Приложение должно "перезагрузить" после этого изменения. В результате я меняю URL прокси:

App.tree_store.proxy.url = new_url;

Тогда я бы хотел загрузить новые данные:

App.tree_store.load();

Когда я переключаю NestedList на корневую карту, он будет содержать смешанные данные из предыдущей и текущей конфигурации:

App.views.hdTreeView.setActiveItem(0);

Вопрос: Как мне «очистить / сбросить» NestedList перед загрузкой совершенно новых данных (та же модель данных)? Нужно ли очищать TreeStore / SubStores и Proxy, если да, то как? Может быть, с помощью метода destroy () и воссоздать новые компоненты?

Если я удаляю все списки с помощью removeAll () и затем перезагружаю хранилище, новый список не будет создан.

Спасибо!

Ответы [ 2 ]

1 голос
/ 21 июня 2012
 showDetail: function(list, index , element , record) {
            //Take your store
            var store = Ext.getStore('yourstore');

            //Apply the params
            Ext.apply(store.getProxy()._extraParams, {
                id : record.data.id
            });

            //Reload your store
            store.load();
}

поставить этот код на контроллере

просто измените extraParams, чтобы получить новые данные.

в магазине не вводить exterparam.

так что вы можете использовать только один URL-адрес, а chnage - просто параметр для получения данных.

0 голосов
/ 07 февраля 2012

Сначала используйте store.setProxy() и передайте новый прокси-объект, затем используйте это:

nestedListObject.bindStore(store.load());

, где nestedListObject - ваш вложенный список.

...