2

我是这方面的新手(JS、Rails 和 highcharts,但它们非常好),我非常感谢一些帮助。我的故事是我有一个for loop并且我想显示 for 循环的结果highcharts。我该怎么做?

<p>A n: <%= @calculation.a_n %></p>
<p>H: <%= @calculation.h %></p>
<p>K: <%= @calculation.k %></p>
<p>P: <%= @calculation.p %></p>
<p>A: <%= @calculation.a %></p>
<small>T: <%= @calculation.created_at %></small>
<br /><br />
    <%= @calculation.a_n %> <br />
    <% @amount = (@calculation.h * @calculation.k) %> 
    <% @percent = (@calculation.h * @calculation.k) / @calculation.p %> 
  <% for i in 0..@calculation.a do %> 
    <% @newAmount = ((@amount/(@percent)) + @amount) %>
    <%= "#{i}" + " - #{@amount}" %><br />
    <% @amount=@newAmount %>
  <% end %>
<script type="text/javascript" charset="utf-8">
  $(function() {
    new Highcharts.Chart({
      chart: {
    renderTo: "calculations_chart"
      },
      title: {
    text: "Sum for a year"
      },
      xAxis: {
    text: "Years"
      },
      yAxis: {
    title: {
      text: "Sum"
        }
      },
      series: [{
    data: //for loop?
      }]
    });
  });
</script>
<div id="calculations_chart" style="width:560px; height:300px;"></div>
4

1 回答 1

1

如果你有一个在循环中计算的值,你可以把它放在你想要的位置

series: [{
data: [<%=@amount%>]
  }]

或者,如果您有一系列数据存储在您想要迭代的地方并将它们添加到图表中

series: [
      {
      data: [
<% for i in 0..@calculation.a do %> 
  <% @amount = ((@amount/(@percent)) + @amount) %>
  <%= @amount %>,
<% end %>
 ]}
]

这是页面中的很多逻辑,您可能需要考虑将其移动到控制器或模型中。为了在多个地方实现超级可重用性,您可以有一个操作以 JSON 格式提供数据,您可以在需要它的页面中异步获取这些数据。

编辑以匹配 highchart 格式

于 2013-02-07T02:05:48.337 回答