ExtJS json store не заполнен
Недавно я погрузился в ExtJS, унаследовав веб-приложение, написанное в 3.4. Мне удалось без проблем создать магазин, подключенный к сетке, и я смог вызвать PanelForm с данными, загруженными из вызова на страницу php.
У меня определено другое хранилище json, которое не заполняется, когда я вызываю его процедуру загрузки, и мне интересно, чего мне не хватает.
Определение магазина ниже:
var ImgStore = new Ext.data.JsonStore({
totalProperty: 'total'
,root: 'data'
,url : 'json/getProductImage/'
,fields : [{
name : 'img'
},{
name : 'extn'
}]
});
Мой код для загрузки данных:
ImgStore.load({callback: function() {}
,params: {'ProductGUID': x}
});
Код за URL в порядке, и ответ в Firebug ниже:
{"success":true,"data":{"img":"iVBORw0KG...ggg==","extn":"png"}}
Я не могу понять, почему ответ возвращается, а Магазин не заполняется. Я должен что-то упустить; Я просто не вижу, что...
Магазин должен быть связан с другим объектом? Я хотел прочитать обратно строку в кодировке base64, а затем показать изображение на экране (либо на панели, либо в FormPanel, либо в контейнере; не совсем уверен, что это лучший метод)
Любой совет получен.
2 ответа
Вашему магазину нужна модель. Модель должна отражать атрибуты, которые затем возвращаются в вашем фиде JSON. Только тогда данные появятся в вашем магазине.
Все выглядит хорошо, за исключением конфигурации URL, не пропускаете имя файла? 'json/getProductImage/myfile.json'
?
Как вы проверяете магазин не загружается, привязывая его к сетке? Потому что, если это так, хранилище может загружаться, но неправильная настройка сетки может заставить вас думать, что хранилище не загружено, попробуйте console.log(store.getTotalCount())