Легенда не обновляется - PullRequest
       9

Легенда не обновляется

0 голосов
/ 23 декабря 2011

У меня возникла проблема с обновлением легенды

Когда данные меняются в памяти, круговая диаграмма обновляется, а легенда - нет.

Но чтобы удивить, что он обновляется один раз, когда мы сбрасываем круговую диаграмму, так как я использую опцию Сброс во взаимодействиях.

Я не знаю, в чем именно проблема, почему легенда не обновляется в первый раз.

когда я использую жесткие кодовые значения для магазина, легенда обновлялась сама по себе. Для динамических значений только легенда не обновлялась изначально.

Пожалуйста, обратитесь Часть моего кода,

    PieChart = new Ext.chart.Chart( {

                               cls: 'pie1',

                               theme: 'Demo',

                               store: store1
                               shadow: true,

                               animate: true,

   legend: {
     position: 'top'

    //  dock: false
},
   interactions: [ {

                   type: 'reset',
                  confirm: true
                  }],


series:
    [ {

        type: 'pie',

        renderer: function(sprite, storeItem, barAttr, m, store11) {

            barAttr.fill = colors1[m % colors1.length];

            return barAttr;

        },

        field: 'data1',

        showInLegend: true,

        highlight: false,

        donut: 15,

        listeners: {

            'labelOverflow': function(label, item) {

                item.useCallout = true;

            }

        },

        callouts: {

            renderer: function(callout, storeItem) {

                callout.label.setAttributes( {

                    text: storeItem.get('Horizontal')

                }, true);

            },

            filter: function() {

                return false;

            },

            box: {

                //no config here.

            },

            lines: {

                'stroke-width': 2,

                offsetFromViz: 10

            },

            label: {

                font: 'italic 14px Arial'

            },

            styles: {

                font: '14px Arial'

            }

        },

        label: {

            field: 'Horizontal',

            display: 'rotate',

            font: '5px Arial'

        }

    }]

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 22 августа 2012

Чтобы обновить легенду диаграммы в Sencha Touch (Charts v1.0.0), вам просто нужно загрузить свой магазин и затем сделать updateStore() в обратном вызове.

var updateLegend = function(){
     store.getProxy.url = 'someData.json'; // Omit if new data is from original source.
     store.load({
        callback: function(records, options, success){
            if (success === true){
                var legend = chart.legend;
                legend.view.updateStore();
            }
        }
    });
}
0 голосов
/ 13 февраля 2012

Я решил эту проблему, используя следующий код при сохранении данных в хранилище

var hrPieChart = hrPanel.items.getAt(0);
            hrPieChart.legend = new Ext.chart.Legend( {
                chart: hrPieChart,
                position: 'top',
                    dock: false
            });
            var fieldNames = [];
            hStore.each(function(rec) {
                fieldNames.push(rec.get('data1'));
            });
            hrPieChart.series.getAt(0).yField = fieldNames;
            hrPieChart.redraw(false);
...