首页 > 解决方案 > 使用 ajax 更新 Chart.js 数据

问题描述

我想用 ajax 和 Flask 更新我的图表,但我无法更新数据:



  var chart = new Chart(canvas, {
    type: "line",
    datasets: [{
      label: 'My Dataset',
    }]

  })

  $(document).ready(function () {
    $.ajax({
      dataType: "text",
      contentType: "application/json",
      url: '{{ url_for("data_page") }}',
      type: "post",
      data: JSON.stringify({
        timeDelta: "7",
        technologie: "Java",
      }),
      success: function (data) {
        let json = $.parseJSON(data);  ==> [["2021-06-04", "2021-06-05"],[47, 3]]
        chart.data.labels.push(json[0]); ==> It seems to work

        chart.data.datasets[0].data = json[1]; ==> here I get : "Cannot set property 'data' of undefined"
        chart.update();
      }
    });
   });

我不明白,我哪里错了?

谢谢你的帮助 !

标签: jsonajaxchart.js

解决方案


它不起作用,因为您最初使用错误的配置创建了图表。和数组必须包含在对象中labelsdatasetsdata

试试这个:

var chart = new Chart(canvas, {
  type: 'line',
  data: { 
    labels: [],
    datasets: [{
      label: 'My Dataset',
      data: [] 
    }]
  }
});

推荐阅读