Использование диаграмм ExtJS 4 в приложении ExtJS 3 - PullRequest
1 голос
/ 23 июня 2011

Я пытаюсь добавить диаграммы Ext4 в существующее приложение Ext3, используя ext-all-sandbox.js. У меня есть основы работы, но код ниже дает axis.processView is not a function. Он отлично работает без заданных осей (но без осей, очевидно).

Похоже, что объекты конфигурации используются напрямую, а не для создания реальных экземпляров осей. Какие-нибудь решения, чтобы заставить это работать?

TestGraphPanel = Ext.extend(Ext.Panel, {
    initComponent: function() {
        TestGraphPanel.superclass.initComponent.call(this);

        Ext4.define('DataPoint', {
            extend: 'Ext.data.Model',
            fields: ['xValue', 'yValue']
        });

        this.store = Ext4.create('Ext.data.Store', {
            model: 'DataPoint',
            data: [
                {xValue: 0, yValue: 2},
                {xValue: 1, yValue: 4},
                {xValue: 2, yValue: 7},
                {xValue: 3, yValue: 5},
                {xValue: 4, yValue: 8},
                {xValue: 5, yValue: 9}
            ]
        });
    },

    afterRender: function() {
        Ext4.create('Ext.chart.Chart', {
            renderTo: this.body.dom,
            width: this.ownerCt.getWidth(),
            height: this.ownerCt.getHeight(),
            store: this.store,
            axes: [
                {
                    title: 'x',
                    type: 'Numeric',
                    postition: 'bottom',
                    fields: ['xValue']
                },
                {
                    title: 'y',
                    type: 'Numeric',
                    position: 'left',
                    fields: ['yValue']
                }
            ],
            series: [
                {
                    type: 'line',
                    xField: 'xValue',
                    yField: 'yValue'
                }
            ]
        });
    }
});

1 Ответ

0 голосов
/ 08 августа 2011

После быстрого взгляда на источник, я думаю, что ваша проблема может быть связана с тем, что вы создаете диаграмму в afterRender.

Я имею в виду, в частности, эти строки

//process all views (aggregated data etc) on stores
//before rendering.
me.axes.each(function(axis) {
    axis.processView();
});

Объекты конфигурации анализируются непосредственно перед этим. В противном случае попробуйте установить точку останова и проверить объекты.

...