如何将动态字符串作为Charts.js中的数据集传递

问题描述 投票:0回答:1

我正在尝试在图表的数据集字段中传递动态创建的值(新数据)。

var data = {
labels: bottomlabel,
datasets: newdata};

我如何获取数据正在使用for循环:

for(i = 0; i < actual_JSON.length-1; i++){
    dslabel = actual_JSON[i].Client;
    dsdata = actual_JSON[i].Customer +"," +actual_JSON[i].Internal;
    gcolor = dsbgcolor[i];
    borcolor = dsborcolo[i];
    if(i == actual_JSON.length-2)
    {
        prefinalds += "{label: "+dslabel+",data: ["+dsdata+"],backgroundColor: "+dsbgcolor[i]+",borderColor: "+dsborcolo[i]+",fill: "+fill+",lineTension: "+lt+",radius: "+rad+"}";
    }
    else
    {
        prefinalds += "{label: "+dslabel+",data: ["+dsdata+"],backgroundColor: "+dsbgcolor[i]+",borderColor: "+dsborcolo[i]+",fill: "+fill+",lineTension: "+lt+",radius: "+rad+"},";
    }
}

然后创建'data':

newdata= "["+prefinalds+"]";

现在,当我在“数据集:newdata”中传递数据时。我得到一个空白图表。请提出建议。

P.S。我尝试了JSON.parse(),但是没有用。

javascript charts chart.js
1个回答
0
投票

您尝试过这个吗?

var prefinallds = [];
for(i = 0; i < actual_JSON.length-1; i++){
  var data = {};
  dslabel = actual_JSON[i].Client;
  dsdata = actual_JSON[i].Customer +"," +actual_JSON[i].Internal;
  gcolor = dsbgcolor[i];
  borcolor = dsborcolo[i];
  if(i == actual_JSON.length-2)
  {
    data.label = dslabel;
    data.data = dsdata;
    data.backgroundColor = dsbgcolor[i];
    data.borderColor = dsborcolo*emphasized text*[i];
    data.radius = rad;
  }
  else
  {
    data.label = dslabel;
    data.data = dsdata;
    data.backgroundColor = dsbgcolor[i];
    data.borderColor = dsborcolo*emphasized text*[i];
    data.radius = rad;
  }
  prefinallds.push(data);
}
// convert to json
JSON.parse(prefinallds);

您不建议将字符串转换为JSON格式。我强烈鼓励开发人员使用实际的对象来解析其数据。

© www.soinside.com 2019 - 2024. All rights reserved.