我有一个图表的工作实例,工具提示也显示得很好。这是我设置系列的方式以及该系列的工具提示:
data.aggCounts.forEach(function(point, i) {
series[0].data.push({
name: data.allDates[i],
tooltipText: data.agSums[i][1],
y: data.aggCounts[i]
});
});
被馈送到data.agSums
的 tooltipText
字符串看起来像这样:
"item 1: 0, item 2: 3, item 4: 2, ...."
我希望这些项目以新行显示,我尝试用/ n替换,但这是行不通的。因此,我介绍了一种格式化程序,该格式化程序似乎也不做任何事情:
tooltip: {
pointFormat: '{point.tooltipText}',
useHTML: true,
formatter: function() {
let text = this.point.tooltipText
return text.replace(/,/g, "<br>")
}
}
还有另一个选项可以使用原始数组,在该数组中数据是从中获取并放入字符串中的。该数组是给我的 highcharts 组件的数据对象@Input data
的一部分,但是当我尝试访问选项中的数据时,它将引发以下错误:
@Input data;
const options: Highcharts.Options = {
tooltip: {
useHTML: true,
formatter: function() {
let data = this.data
//the above line throws: "Potentially invalid reference access to a class field via 'this.' of a nested function", so I don't have access to the original array
}
}
}
是否知道如何访问格式化程序函数中的数据结构,如何使用<br>
替换字符串中的所有逗号?
编辑:即使我访问格式化程序中的数据,也无法将其用于特定点,因为我可以访问组件级变量或图表实例var。例如 x 和 y 点。如果没有其他唯一的选择是用换行符替换逗号,是否可以同时访问它们?