Загрузка и обработка данных из 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, время: 09:05. |