Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.11.2011, 14:14
Новичок на форуме
Отправить личное сообщение для kalya Посмотреть профиль Найти все сообщения от kalya
 
Регистрация: 22.10.2009
Сообщений: 6

Данные из store не успевают попадать в chart
Добрый день всем.
Собственно сабж: обрыл уже весь инет, но проблема упорно не решается.
Мне нужно построить 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 графика, понятное дело, сразу отображаются.
Товарищи, прошу помощи, так как парюсь уже не один день и никак не получается отобразить графики.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не совсем обычный фрейм и выезжающий текст при наводе на картинку. amaz245 Элементы интерфейса 35 25.12.2010 17:29
получить данные из store, как ? maslks ExtJS 5 14.10.2009 16:45