我正在使用ChartJS进行图表构建。我在multipleTooltipLabel模板中包含datasets.label并面临更新问题。更改datasets.label并运行chart.update()
时,工具提示不会更新。我创建了一个JSFiddle demonstrating the issue。
我用来在工具提示中包含数据集标签的代码:
var options = {
multiTooltipTemplate: "<%=datasetLabel%>: <%= value + ' %' %>"
};
除了该选项,我跟随ChartJS usage example获取折线图。
更改标签并更新图表:
myNewChart.datasets[0].label = 'updated label';
myNewChart.update();
工具提示中显示的标签未更新...
我查看了ChartJS源代码,发现用ChartElements
数组调用了showTooltip
function,但未更新。
更新:我可能会缓存此问题。 label
的{{1}}为set on each point
element,如果更改,则不会更新。在绘制工具提示时,dataset
使用了此“缓存”数据集标签。也许这不应该是StackOverflow上的问题,而是ChartJS的错误报告。
答案 0 :(得分:1)
我找到了解决方案:
myNewChart.datasets[0].points.forEach(function(point) {
point.datasetLabel = 'updated label';
});
这也可能是它应该做的方式。 Chart {js update
method的文档说你应该设置myLineChart.datasets[0].points[2].value = 50;
来更改值。创建数据集中令人困惑的原因需要data
属性中的值。 points
由init上的Chart.Line
类生成。其他图表类型的命名可能不同(例如条形图的bars
)。
我不确定myLineChart.datasets[0].label
值是否在某处使用或者是否可以保持不变。
答案 1 :(得分:0)
我可以通过更改原始数据对象(data.datasets [0] .label =&#39;更新标签&#39;)然后运行myNewChart.initialize(数据)来解决您的问题。