我知道如何显示多个信息。标签中的相同单位由
multiTooltipTemplate:“<%= datasetLabel%>:<%= value%>%”
结果如下:
的 [] INFOA:50%
[] InfoB:50%
但我现在尝试用不同的单位显示信息,例如:
的 [] INFOA:50%
[] InfoB:50 $
我该怎么办?
答案 0 :(得分:1)
您可以使用valuesObject的label
属性来计算索引并使用它来选择符号,如下所示
Chart.mySymbols = ['!', '@', '#', '$', '%', '^', '&'];
var ctx = document.getElementById("myChart").getContext("2d");
var myChart = new Chart(ctx).Line(window.data, {
multiTooltipTemplate: "<%=datasetLabel%> : <%= value %><%= Chart.mySymbols[window.data.labels.indexOf(label)] %>"
});
请注意,data
和mySymbols
集合都是全局可引用对象的属性(在这种情况下为window
和Chart
,但它可以是任何全局对象)。这是因为只有valuesObject被注入template
函数。除非您想要更改库代码,否则使用全局对象将是这样做的方式(但请注意,它不是很好的设计)。
小提琴 - http://jsfiddle.net/z1nfqhfn/
如果你想通过数据集做类似的事情,那就是
Chart.mySymbols = ['°C', '%'];
var ctx = document.getElementById("myChart").getContext("2d");
var myChart = new Chart(ctx).Line(window.data, {
multiTooltipTemplate: "<%=datasetLabel%> : <%= value %><%= Chart.mySymbols[window.data.datasets.map(function(e) { return e.label }).indexOf(datasetLabel)] %>"
});