在Chart.js(v2.7.3)中,我有一个包含多个数据集的折线图。我想在工具提示中以“ MMM”格式显示其中一个数据集的日期(每个月有一个点),并以“ D MMM”格式显示所有其他数据集(每个月具有不同点数)的日期
我尝试使用一个用于tooltipFormat的函数,如下所示:
time: {
parser: timeFormat,
round: 'day',
tooltipFormat: function(tooltipItem, data) {
var f = 'D MMM';
if(tooltipItem.datasetIndex==0){
f = 'MMM';
}
return f;
},
unit: 'month',
displayFormats: {
day: 'MMM',
month: 'MMM'
}
}
但是,无论如何,当我将鼠标悬停在任意线上的某个点上时,都会出现以下错误:
Uncaught TypeError: format.replace is not a function
at expandFormat (moment-with-locales.js:626)
at formatMoment (moment-with-locales.js:611)
at Moment.format (moment-with-locales.js:3351)
at ChartElement.getLabelForIndex (Chart.js:14331)
at createTooltipItem (Chart.js:8354)
at ChartElement.update (Chart.js:8735)
at ChartElement.handleEvent (Chart.js:9097)
at Chart.eventHandler (Chart.js:4704)
at listener (Chart.js:4633)
at HTMLCanvasElement.proxies.(anonymous function) (https://cdn.jsdelivr.net/npm/chart.js@2.7.3/dist/Chart.js:10970:4)
这很好,但是将所有工具提示设置为“ D MMM”:
time: {
parser: timeFormat,
round: 'day',
tooltipFormat: 'D MMM',
unit: 'month',
displayFormats: {
day: 'MMM',
month: 'MMM'
}
}
但这不起作用-相同的“未捕获的TypeError:format.replace不是函数”错误:
time: {
parser: timeFormat,
round: 'day',
tooltipFormat: function(tooltipItem, data) {
return 'D MMM';
},
unit: 'month',
displayFormats: {
day: 'MMM',
month: 'MMM'
}
}
是否无法对tooltipFormat使用函数,还是我做错了?