我是这方面的新手(JS、Rails和highcharts,但它们真的很好),我真的很感谢你的帮助。我的故事是,我有一个for loop
,我想在highcharts
中显示for循环的结果。我该怎么做?
<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>
如果你有一个在循环中计算的值,你可以把它放在你想要的位置
series: [{
data: [<%=@amount%>]
}]
或者,如果你有一系列数据存储在某个地方,你想迭代并将它们添加到你的图表中
series: [
{
data: [
<% for i in 0..@calculation.a do %>
<% @amount = ((@amount/(@percent)) + @amount) %>
<%= @amount %>,
<% end %>
]}
]
页面中有很多逻辑,您可能需要考虑将其移动到控制器或模型中。为了在多个地方实现超级可重用性,您可以使用一个操作来提供JSON中的数据,这些数据是您在需要它的页面中异步获得的
编辑以匹配高图表格式