【问题标题】:Ruby on Rails: Passing string array to highchart functionRuby on Rails:将字符串数组传递给 highchart 函数
【发布时间】:2018-03-02 15:50:31
【问题描述】:

我是 Ruby on Rails 的新手,目前正在使用 highchart 制作图形。我需要一个在 x 轴上有类别的柱形图,其中类别实际上应该是用户的姓名(用户不多,所以这确实有意义)。

不幸的是,我的图表没有显示我在调用图表函数之前定义(或从数据中检索)的字符串数组类别。用categories: <%= @users.map { |i| i.name } %> 来检索名称也不起作用。

这是我在show.html.erb 中尝试做的一个最小示例:

<% quantities = [1,2,3] %>
<% names = [5,6,7] %>
<% names2 = ['A','B','C'] %>

<div id="container" style="width:60%;height:300px;"></div>
<script>
   $(function () {
      $('#container').highcharts({
         chart: {
            type: 'column'
         },
         xAxis: {
            categories: [ <%= names[0] %>, <%= names[1] %>, "test" ]
         },
         series: [{
            showInLegend: false,
            data: <%= quantities %>
         }]
      });
   });
</script> 

对图表使用整数数组names 不是问题,但不知何故,字符串数组names2 不会被传递,并且当包含而不是names 时,图表根本不会显示。在函数内部定义字符串数组也不是问题。

是否有可能传递一个字符串数组或从数据中检索它?

提前致谢!

【问题讨论】:

  • 你能显示你传入names2时使用的代码行吗?它将帮助规则语法错误和类似的东西。
  • categories: [ &lt;%= names2[0] %&gt;, &lt;%= names2[1] %&gt;, "test" ] 例如。或者我当然可以直接使用categories: names2,但这也不起作用
  • 对不起,我的意思是categories: &lt;%= names2 %&gt; :) - 就像数量数组一样

标签: javascript ruby-on-rails arrays string highcharts


【解决方案1】:

我认为这里的问题是您需要将它从 ruby​​ 数组转换为您的 javascript 可以处理的东西。您可能需要将数组转换为 json,并将其标记为安全。像这样的:

<%= escape_javascript names2.to_json %>

如果escape_javascript 不起作用,您也可以尝试raw

【讨论】:

  • 完美!!我已经尝试过.to_json,但现在raw 终于奏效了:) 非常感谢!!
猜你喜欢
  • 2016-12-08
  • 1970-01-01
  • 1970-01-01
  • 2015-09-09
  • 2013-06-27
  • 2015-05-27
  • 1970-01-01
相关资源
最近更新 更多