Javascript 使用Handlebar使用来自AJAX的数据刷新Highcharts
我有一个Highchart图,它以Handlebar表达式的形式从后端接收数据。像这样的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
$('#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访问。有关访问和操作轴的信息,请参见。