Chart.js v2-如何在工具提示中设置依赖数据集的日期格式

时间:2019-05-03 02:02:39

标签: javascript chart.js

在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使用函数,还是我做错了?

0 个答案:

没有答案