我正在尝试通过HighCharts和Ruby on Rails为折线图的每个数据点创建一个自定义工具提示,以此线程的方式:
Set Additional Data to highcharts series
为了总结该线程,响应者建议通过散列向系列输入其他数据。一个名为" myData"的自定义字段;保存工具提示中使用的其他数据:
new Highcharts.Chart( {
...,
series: [{
name: 'Foo',
data: [ { y : 3, myData : 'firstPoint' },
{ y : 7, myData : 'secondPoint' },
{ y : 1, myData : 'thirdPoint' } ]
}]
tooltip: {
formatter: function() {
return 'Extra data: <b>'+ this.point.myData +'</b>';
}
} );
当myData的数据字段(即#{iextraData})是一个整数时,我已成功使用该代码:
series: [{
data: [ <%@show.each do |i| %> { x: <%="#{i.year}, y: #{i.maturity},
myData: #{i.extraData}"%>},<%end%>]
}]
在这种情况下,我的折线图在x和y访问时正确显示,并且工具提示包含了预期的38.xtraData整数。
但这是我的问题。让我们说我想要的自定义工具提示不是像fantxtraData那样的整数,而是一个字符串。在那种情况下,我的代码中断了。我试过在#{iextraData}的字符串版本中包含单引号,但我的代码仍然存在。我不明白如何编辑这部分代码,以便#{}内的字符串输入哈希值,并且可以通过工具提示读取。
非常感谢您考虑我的问题!
答案 0 :(得分:1)
我不熟悉Highcharts,但这里有一个粗略的例子,说明如何使用JSON模块将Ruby数据转换为JavaScript友好的(这是从解释器运行的。)
window.addEventListener('keydown',function(e){
e.preventDefault();
});
答案 1 :(得分:0)
series: [{
data: [ <%@show.each do |i| %> { x: <%=#{i.year}%>, y: <%=#{i.maturity}%>,
myData: '<%=#{i.extraData}%>'},<%end%>]
}]
试试这个