1

基本的に、Highchartチャートのいくつかのプロパティを定義するオブジェクトがあります。

var options = {
    chart: {
        renderTo: 'container',
        type: 'line',
        marginRight: 130,
        marginBottom: 25
    },
    title: {
        text: 'Monthly Average Temperature',
        x: -20 //center
    },
    subtitle: {
        text: 'Source: WorldClimate.com',
        x: -20
    },
    xAxis: {
        categories: []
    },
    yAxis: {
        title: {
            text: 'Temperature (°C)'
        },
        plotLines: [{
            value: 0,
            width: 1,
            color: '#808080'
        }]
    },
    tooltip: {
        formatter: function () {
            return '<b>' + this.series.name + '</b><br/>' + this.x + ': ' + this.y + '°C';
        }
    },
    legend: {
        layout: 'vertical',
        align: 'right',
        verticalAlign: 'top',
        x: -10,
        y: 100,
        borderWidth: 0
    },
    series: [{
        name: 'Tokyo',
        data: aCosts
    }]
};

そして、私はこのオブジェクトを次のようにファイル(ajax呼び出し)から更新したいと思います:

$.getJSON(
    "handler.php",
    function (oJSON) {
        var sName,
            sCost,
            aRow;
        for (sName in oJSON) {
            aRow = [];
            //categories = [];
            if (oJSON.hasOwnProperty(sName)) {
                aRow.push(sName);
                categories.push(sName);
            }
            // Create the chart
            var chart = new Highcharts.Chart(options);
        }
    }
);

問題は、カテゴリが定義されていないことを示しているため、新しい値をオプションに渡すことができないことです。私は使用してみました:

options.categories.push(sName)
options[categories].push(sName) 

そして、どれも機能しません。

オプションオブジェクト内のカテゴリの値を更新するにはどうすればよいですか?

4

2 に答える 2

5

それが呼び出しoptionsから見えると仮定すると、これはうまくいくはずです:$.JSON

options.xAxis.categories.push( sName );

optionsオブジェクトの構造を見るとcategories、プロパティの下にあることがわかりますxAxis。したがって、あなたはそのようなものに対処する必要があります。

于 2013-02-01T14:30:39.387 に答える
0

次のように、最初にカテゴリを定義する必要があります。

options.categories = [];

次に、この配列に物をプッシュできます。

編集:categories: []最初からjsonに配置することもできます。

于 2013-02-01T14:30:57.067 に答える