我的图表在后端作为对象创建,并推送到像“{{chart(myChart)}}”这样的树枝。但我需要动态更新数据。所以我创建了新的图表,只通过ajax推送了chart-> series [0]。
我已经尝试过update()和setData()方法,但还没有运气,我看到“没有要显示的数据”。奇怪的是,如果我加载相同的对象 - 数据显示。
var dchart = $("#myChart").highcharts();
console.log(dchart);
var dp = $('body').find(".date-picker");
dp.datepicker();
dp.on('changeDate', function(e)
{
console.log(e.format('yyyy-m-d'));
$.ajax({
url: 'path',
type: 'POST',
data: { date: e.format('yyyy-m-d') }
}).done(function(msg){
dchart.series[0].setData(msg[0].data);}
答案 0 :(得分:0)
我认为您需要像这样重写代码:
dchart.series[0].update({
data: msg[0].data
}, true);
答案 1 :(得分:0)
答案 2 :(得分:0)
我认为您应该通知$.ajax()
,数据是JSON格式,否则您将获得字符串。或者将字符串解析为JSON:
dchart.series[0].setData(JSON.parse(msg[0].data));
答案 3 :(得分:0)
我发现问题出在xAxis上。
在时间戳中加载的数据超出了初始图表中设置的时间范围。这就是它显示No data to display
的原因。
解决方案是更新xAxis:
dchart.xAxis[0].setExtremes(min, max);