0

我有一段看起来像这样的代码:

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

myChart 定义明确。当我在萤火虫中窥探它时,它包含图表。

我知道仪表不是一种图表而是一种系列,所以我真的不明白为什么我会收到错误“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.
    }
}

最后我面临另一个问题......我在萤火虫中没有更多错误,但在视觉上,我的仪表图没有显示任何值。它渲染得很好,但它是空的......我尝试使用 doLayout() 或 doComponentLayout() 方法更新它,但仍然没有任何反应。

于 2013-08-13T13:55:37.650 回答