Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Handlebar使用来自AJAX的数据刷新Highcharts_Javascript_Jquery_Ajax_Highcharts - Fatal编程技术网

Javascript 使用Handlebar使用来自AJAX的数据刷新Highcharts

Javascript 使用Handlebar使用来自AJAX的数据刷新Highcharts,javascript,jquery,ajax,highcharts,Javascript,Jquery,Ajax,Highcharts,我有一个Highchart图,它以Handlebar表达式的形式从后端接收数据。像这样的 $('#container').highcharts({ xAxis: { categories: [{{{histKeys}}}] }, yAxis: { title: { text: 'Failure Percentage', style: { color: '#cc0

我有一个Highchart图,它以Handlebar表达式的形式从后端接收数据。像这样的

$('#container').highcharts({
    xAxis: {
        categories: [{{{histKeys}}}]
    },
    yAxis: {
        title: {
            text: 'Failure Percentage',
            style: {
                color: '#cc0000'
            }
        },
        labels: {
            format: '{value}%',
            style: {
                color: '#cc0000'
            }
        },
        plotLines: [{
            value: 0,
            width: 1,
            color: '#808080'
        }]
    },
    credits: {
      enabled: false
    },
    plotOptions: {
        series: {
            cursor: 'pointer',
            point: {
                events: {
                    click: function() {
                        var index = this.series.name;
                        var tfs = epochKeys[Math.ceil(this.x)];
                        window.location.href = url;
                        return false; 
                        }
                    }
                }
            }

    },
    legend: {
        layout: 'vertical',
        align: 'right',
        verticalAlign: 'middle',
        borderWidth: 0
    },
    series: [
    {{#each histData as |index|}}
    {
        name: '{{@key}}',
        type: 'spline',
        allowPointSelect: true,
        {{#each index as |status|}}
        {{#if_eq @key "histSuccess"}}
        {{/if_eq}}
        {{#if_eq @key "histFailure"}} 
        data: [{{this}}],
        {{/if_eq}}
        {{/each}}
    },
    {{/each}}
    ]
});
现在我进行一个AJAX调用以获取数据以刷新图形。如何将Handlebar表达式的新值传递给Highcharts代码中使用的变量。 因此,我在AJAX调用中收到的数据包含Highcharts函数中使用的所有这些表达式的值

由于代码是动态的,我不能手动更新序列值,因为图形上的行数根据来自后端的数据而不同

感谢您的输入。

您可以在ajax回调中获得(已经存在的)highcharts对象,如下所示:

$('#container').highcharts()
事实上,有一个相当好的API可以与此对象交互,记录如下:

对于初学者,可以通过再次调用addSeries()替换现有图表。要使其正常工作,您的序列必须具有id,然后再次添加具有相同id的序列:

$('#container').highcharts().addSeries({ id: 'myid', data: .... });
同样,您也可以删除现有系列:

$('#container').highcharts().removeSeries('myid');
也可以只替换一系列的数据,大致如下:

$('#container').highcharts().getSeries('myid').setData(...);
我希望这对您有所帮助。

您可以在ajax回调中获得(已经存在的)highcharts对象,如下所示:

$('#container').highcharts()
事实上,有一个相当好的API可以与此对象交互,记录如下:

对于初学者,可以通过再次调用addSeries()替换现有图表。要使其正常工作,您的序列必须具有id,然后再次添加具有相同id的序列:

$('#container').highcharts().addSeries({ id: 'myid', data: .... });
同样,您也可以删除现有系列:

$('#container').highcharts().removeSeries('myid');
也可以只替换一系列的数据,大致如下:

$('#container').highcharts().getSeries('myid').setData(...);

我希望这能对您有所帮助。

非常感谢您的投入。这真的很有帮助。但是xAxis类别呢。我怎样才能替换它?有什么方法可以访问它吗?通常,几乎任何东西都可以通过API访问。有关访问和操作轴的信息,请参见。非常感谢您的输入。这真的很有帮助。但是xAxis类别呢。我怎样才能替换它?有什么方法可以访问它吗?通常,几乎任何东西都可以通过API访问。有关访问和操作轴的信息,请参见。