1

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

Ext.define('Cabinet.view.workspace.indexCharts.Line', {
    extend: 'Ext.panel.Panel',
    alias: 'widget.IndexLineChart',
    show: function (chartDiv, valuesList) {
        valuesList = '[' + valuesList + ']';
        console.log(valuesList);
        charts[chartDiv] = new Highcharts.Chart({
            chart: {
                renderTo: chartDiv,
                type: 'line'
            },
            title: {
                text: 'Some Title'
            },
            yAxis: {
                categories: [2005, 2006, 2007]
            },

            series: [{ data: valuesList}],

            legend: {
                layout: 'horizontal',
                align: 'center'
            }
        });
    }
});

しかし、このウィジェットを呼び出した後、エラーが発生します。

予期しない値 NaN が y 属性を解析しています。

return e}function oa(a){return Fa(a)?a:[a]}function p(){var a=arguments,b,c,d=a

console.log 表示: [825557000000,1089384000000,1404492600000]

それのどこに問題があるのですか?

4

2 に答える 2

4

valuesList は文字列のように見えますが、必要なのは配列です。

ハイチャートに渡す前に配列に変換する必要があります。次のようなさまざまな方法で行うことができます

valuesList = '[' + valuesList + ']';
valuesList = JSON.parse(valuesList);
//OR
valuesList = jQuery.parse(valuesList);
//OR
valuesList = eval(valuesList);

あなたに合ったものを選択してください配列への文字列の解析をチェックしてください @ jsFiddle何が起こっているのかをさらに理解するために

于 2012-10-02T17:53:09.040 に答える
1

これは、series.dataオブジェクトがデータ ポイントの配列である値を必要としているのに、配列の JSON 表現を含む文字列を提供しているためです。 valueList文字列ではなく、数値の配列である必要があります。

valueListが数値の配列である場合、この行はそれを文字列に変換しています。

valuesList = '[' + valuesList + ']';

そうしないでください。

于 2012-10-02T12:24:56.850 に答える