我使用的是chartjs v4。我正在修改图例文本。我看到代码被执行,但图例文本没有改变。这是代码:
var myChart = new Chart(ctx, {
type: 'bar',
plugins: [{
afterLayout: chart => {
chart.legend.legendItems.forEach(
(label) => {
label.text += ' Test';
return label;
}
)
}
}],
...
图例标签保持不变(它不会在每个标签末尾添加“Test”)。我缺少什么?不知怎的,有些东西没有被刷新。
找到解决方案!解决方案是使用 afterDraw 代替 afterLayout,如下所示:
var myChart = new Chart(ctx, {
type: 'bar',
plugins: [{
afterDraw: (chart, args, opts) => {
chart.legend.legendItems.forEach(
(label) => {
label.text += ' Test ';
return label;
}
)
}
}],
...
现在图例文本已成功更新!