Добрый день всем.
Собственно сабж: обрыл уже весь инет, но проблема упорно не решается.
Мне нужно построить 3 bar chart-a, данные для которых подгружаются ajaxom. Я так понимаю проблема в том, что из-за асинхронности запросов на момент передачи store в chart этот самый store пуст.
вот код для store
var store = new Ext.data.Store({
fields: [{name: 'name'}, {name:'data1'}],
proxy: {
type: 'ajax',
url: data_url,
reader: 'json'
},
autoLoad:true
});
вот код для chart
var chart = Ext.create('Ext.chart.Chart', {
width: 500,
height: 300,
animate: true,
store: store,
axes: [{
type: 'Numeric',
position: 'bottom',
fields: ['data1'],
label: {
renderer: Ext.util.Format.numberRenderer('0,0')
},
title: 'Sample Values',
grid: true,
minimum: 0
}, {
type: 'Category',
position: 'left',
fields: ['name'],
title: 'Sample Metrics'
}],
series: [{
type: 'bar',
axis: 'bottom',
highlight: true,
tips: {
trackMouse: true,
width: 140,
height: 28,
renderer: function(storeItem, item) {
this.setTitle(storeItem.get('name') + ': ' + storeItem.get('data1') + ' views');
}
},
label: {
display: 'insideEnd',
field: 'data1',
renderer: Ext.util.Format.numberRenderer('0'),
orientation: 'horizontal',
color: '#333',
'text-anchor': 'middle'
},
xField: 'name',
yField: ['data1']
}]
});
return chart;
Этот код реализован в виде функции ,куда передается url и возвращается сам chart для дальнейшего отображения.
В таком виде графики не рисуются.
Пробовал после определения store писать следующие:
store.on('load', function(){
//код charta
return chart;
});
но в таком случае лезут ошибки.
Если в store данные забить жестко , все 3 графика, понятное дело, сразу отображаются.
Товарищи, прошу помощи, так как парюсь уже не один день и никак не получается отобразить графики.