Загрузка и обработка данных из Store
Добрый день!
Попробую описать, возникшую проблему.. Есть хранилище данных: var storeRequestPie = Ext.create('Ext.data.Store', { autoLoad: true, model: 'RequestPie', proxy: { type: 'ajax', url: getUrl(), reader: { type: 'json', root: 'requestStatus' } } }); storeRequestPie.load(); Есть некий обработчик события: function chooseDate(dateFrom, dateTo) { storeRequestPie.getProxy().url = getUrl(dateFrom, dateTo); storeRequestPie.load(); /*здесь мне нужно обработать данные, которые загрузились в storeRequestPie */ if (storeRequestPie.count() == 1){ ... } else if (storeRequestPie.count() == 0){ ... } else { ... } Но, к сожалению, в оператор условия попадают данные из предыдущего обновления storeRequestPie. Хотя на форму все грузится верно. Как обработать данные перед загрузкой на форму? Уточню: мне нужно в зависимости от результата вывести данные на странице через диаграмму или через обычный текст (динамически добавляю item к Panel) |
В общем, если кому интересно, я нашла работоспособное решение:
storeRequestPie.load({ callback: function (records, operation, success) { if (success == true) { console.log("size: " + this.getCount()); if (this.getCount() == 1) { ... } else if (this.getCount() == 0) { ... } else { ... } } } }); И все-таки не очень поняла принцип работы стора.. Почему только таким образом можно обработать данные? |
Потому что загрузка стора через аякс прокси - асинхронная. И начнется она в лучшем случае тогда, когда завершится метод вызвавший load().
|
Часовой пояс GMT +3, время: 04:41. |