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 のデータを提供するアクションを使用できます。

ハイチャート形式に合わせて編集

于 2013-02-07T02:05:48.337 に答える