Javascript 图表js自定义单独图例单击图例时返回错误

Javascript 图表js自定义单独图例单击图例时返回错误,javascript,chart.js,legend,Javascript,Chart.js,Legend,正在尝试使折线图与自定义图例配合使用。这适用于油炸圈饼图。但这张折线图上没有 我在单击图例时不断遇到此错误,图表中没有任何更改 "Uncaught TypeError: Cannot read property 'getDatasetMeta' of undefined" --有什么想法吗 Charts.prototype.initLineCurved = function () { var chartData = { type:

正在尝试使折线图与自定义图例配合使用。这适用于油炸圈饼图。但这张折线图上没有

我在单击图例时不断遇到此错误,图表中没有任何更改

"Uncaught TypeError: Cannot read property 'getDatasetMeta' of undefined"
--有什么想法吗

Charts.prototype.initLineCurved = function () {
        
    var chartData = {
        type: 'line',
        data: {},
        options: {  
            legend: {
                display: false
            }           
        }
    };
    var linegraphWeekly = document.getElementById('weeklyHoursGraph').getContext('2d');
    var myDarkRadarChart = new Chart(linegraphWeekly, chartData);
        
    updateDatasetGraphs = function (e, datasetIndex) { 
        var index = datasetIndex;
        var ci = e.view.myDarkRadarChart;
        var meta = ci.getDatasetMeta(0);    
        var result = (meta.data[index].hidden == true) ? false : true;
        if(result == true)
        {
            meta.data[index].hidden = true;
            $('#' + e.path[0].id).css('color', '#cbd0d5');
        }else{
            $('#' + e.path[0].id).css('color', '#000');
            meta.data[index].hidden = false;
        }
        ci.update();                
    }
}
还有传说

<div class="legend-container">
    <div class="graph_legend">
        <a id="weekly-legend-0-item" onclick="updateDatasetGraphs(event,0)">This Week</a>
        <a id="weekly-legend-1-item" onclick="updateDatasetGraphs(event,1)">Last Week</a>
    </div>
</div>                          
<div class="graph">
    <canvas height="400" id="weeklyHoursGraph"></canvas>
</div>  

本周
上周
您需要在图表对象上调用

而不是这个

var meta = ci.getDatasetMeta(0);
试试这个:

var meta = myDarkRadarChart.getDatasetMeta(0);
更新

我发现还有其他问题,主要的问题是您总是使用索引
0
getDatasetMeta()
,但是您应该使用要再次隐藏或显示的数据集的索引。
updateDatasetGraphs()
可以简化如下:

function updateDatasetGraphs(e, datasetIndex) {
  var meta = myDarkRadarChart.getDatasetMeta(datasetIndex);
  meta.hidden = !meta.hidden;  
  if (meta.hidden) {   
    $('#' + e.path[0].id).css('color', '#cbd0d5');
  } else {
    $('#' + e.path[0].id).css('color', '#000');    
  }
  myDarkRadarChart.update();
};
请查看以下修改后的代码:

var myDarkRadarChart=新图表('weeklyHoursGraph'{
键入:“行”,
数据:{
标签L:[A',B',C',D',E'],
数据集:[{
数据:[2,4,6,1,3],
},
{      
数据:[4,5,7,5,4],
}
]
},
选项:{
图例:{
显示:假
}    
}
});
函数更新的DataSetGraphs(e,datasetIndex){
var meta=myDarkRadarChart.getDatasetMeta(datasetIndex);
meta.hidden=!meta.hidden;
if(meta.hidden){
$('#'+e.path[0].id).css('color','#cbd0d5');
}否则{
$('#'+e.path[0].id).css('color','#000');
}
myDarkRadarChart.update();
};

本周
上周

太棒了!作品谢谢你的帮助!!