0

次のようなコードがあります。

var myChart = this.items[i].items[j].down().down();
myChart.series.items[0].setValue(30);

myChart は明確に定義されています。firebugでスパイすると、チャートが含まれています。

ゲージはチャートのタイプではなくシリーズのタイプであることを理解したので、「setValue is not a function」というエラーが発生する理由が本当にわかりません!

誰かが助けてくれたら、それは本当にクールだろう。

これが私のビュー定義です:

Ext.define('MyApp.view.portlet.GaugePortlet', {
    extend: 'Ext.panel.Panel',
    alias: 'widget.gaugeportlet',
    height: 300,
    requires: [
        'Ext.data.JsonStore',
        'Ext.chart.theme.Base',
        'Ext.chart.series.Series',
        'Ext.chart.series.Line',
        'Ext.chart.axis.Numeric',
        'Ext.chart.*',
        'Ext.chart.axis.Gauge',
        'Ext.chart.series.*'],

    initComponent: function () {

        Ext.apply(this, {
            layout: 'fit',
            items: {
                xtype: 'chart',
                animate: {
                    easing: 'elasticIn',
                    duration: 1000
                },
                legend: {
                    position: 'bottom'
                },
                axes: [{
                    type: 'gauge',
                    position: 'gauge',
                    minimum: 0,
                    maximum: 2,
                    steps: 10
                }],
                series: [{
                    type: 'gauge',
                    donut: false,
                    colorSet: ['#F49D10', '#ddd']
                }]
            }
        });

        this.callParent(arguments);
    }
});

ハードコードされた値を設定してテストしたいだけです。

ありがとう

4

1 に答える 1

0

ビューの afterLayout イベントで setValue を使用して、最終的にこのエラーを修正しました。

したがって、私のコードは次のようになります。

//view declaration...
listeners:
{
    afterlayout: function ()
    {
        //use setValue here.
    }
}

最後に、別の問題に直面しています... firebug にエラーはありませんが、視覚的にはゲージ チャートに値が表示されません。適切にレンダリングされていますが、空です.... doLayout() または doComponentLayout() メソッドを使用して更新しようとしましたが、まだ何も起こりません。

于 2013-08-13T13:55:37.650 に答える