我对javascript非常陌生,我不确定是否可以这样做。

我正在尝试将Chart对象(来自Chartjs.org)存储为哈希中的值,键是字符串。当运行以下代码时,我得到一条错误消息:“对象[object Object]没有方法” Line”。

有什么建议吗?

var charts = {};

function drawChart(response, div_id){
  data = {
    labels: response.labels,
    datasets: [{...},{...}]
  };

  options = {...};


  var canvas = document.getElementById(div_id);
  var ctx = canvas.getContext("2d");

  if(!charts[div_id]){
    charts[div_id] = new Chart(ctx).Line(data, options);
  }
  else{
    charts[div_id].Line(data, options);
  }
}

最佳答案

.Line()可能不返回Chart()对象,因此在else节中,您所做的等效于Chart()。Line()。Line

尝试像这样重写

  if(!charts[div_id]){
    charts[div_id] = new Chart(ctx);
  }

  charts[div_id].Line(data, options);

关于javascript - Javascript:将对象存储为哈希值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22922325/

10-11 12:02