通过<%=#{}%>将其他数据设置为Highchart系列适用于整数但不适用于字符串

时间:2015-06-26 02:27:07

标签: ruby-on-rails ruby highcharts

我正在尝试通过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}的字符串版本中包含单引号,但我的代码仍然存在。我不明白如何编辑这部分代码,以便#{}内的字符串输入哈希值,并且可以通过工具提示读取。

非常感谢您考虑我的问题!

2 个答案:

答案 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%>]    
}]

试试这个