javascript - 无法使用 ChartJs 创建图例

标签 javascript

我正在使用 ChartJs,一切正常。

我现在需要添加图例并遇到问题!图例从不显示。

我看过How can labels/legends be added for all chart types in chart.js (chartjs.org)?并且可以确认我拥有当前的最新版本(版本 1.0.2)

我运行了 Chrome 开发工具并意识到图例未显示的原因是抛出了异常(饼图仍然显示)。错误信息是

Uncaught ReferenceError: datasets is not defined

这是我用于饼图的代码

//data copied direct from the ChartJs docs
data = [
      {
          value: 300,
          color:"#F7464A",
          highlight: "#FF5A5E",
          label: "Red"
      },
{
    value: 50,
    color: "#46BFBD",
    highlight: "#5AD3D1",
    label: "Green"
}
    ];

    
    ctx = $("#adwordsPieChart").get(0).getContext("2d");
    var myPieChart = new Chart(ctx).Pie(data, chartOptions);
    var legendAdwordsVsOrganic = myPieChart.generateLegend();
    
    document.getElementById("adwordVsOrganicLegend").innerHTML = legendAdwordsVsOrganic;

我检查了同样的问题出现在 IE 和 Chrome 中,确实如此。

我不知道如何解决这个问题。我已按照说明进行操作(我认为)。有什么想法吗?

JSFiddle

最佳答案

问题出在 legendTemplate 中。将所有 datasets 替换为 segments

像这样:

legendTemplate: "<ul class=\"<%=name.toLowerCase()%>-legend\"><% for (var i=0; i<segments.length; i++){%><li><span style=\"background-color:<%=segments[i].lineColor%>\"></span><%if(segments[i].label){%><%=segments[i].label%><%}%></li><%}%></ul>"

Jsfiddle

关于javascript - 无法使用 ChartJs 创建图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30078632/

相关文章:

javascript - 如何通过 jquery-1.11.0.min 版本隐藏/更改 div 元素内容

javascript - Marionette 事件,从子事件到父事件的异步回调?

javascript - 可堆叠弹出 Bootstrap 模式关闭问题

javascript - Bootstrap Touchspin OnChange 事件

javascript - 遍历 Javascript 中的对象键

javascript - 第二次删除后添加 Gritter 消息

javascript - Meteor email.send() 来自现场用途

javascript - 如何使用 Javascript 打断一个单词

javascript - 如何从 javascript var 或输入类型文本设置 php mysql?

javascript - 将附加 SDK 移植到 Webextension