[英]How do I pass a Ruby array to Javascript to make a line graph
我正在嘗試創建一個網頁,以在我的Ruby on Rails 2.3.14應用程序中顯示折線圖。 我找到了一個名為JS Charts的工具,它允許我使用Javascript創建漂亮的圖形,但是我無法向它發送所需的數據。 以下是制作靜態折線圖的方法:
<script type="text/javascript">
var myData = new Array([1, 395], [2, 244], [3, 223], [4, 210], [5, 238], [6, 223], [7, 275], [8, 31]);
var myChart = new JSChart('chartcontainer', 'line');
myChart.setDataArray(myData);
myChart.draw();
</script>
我將該代碼放入stats.html.erb中,然后顯示出來。 但是,我需要它來顯示我提供的線圖數據。 在控制器中創建一個二維數組:
>> @a
=> [[1, 395], [2, 244], [3, 223], [4, 210], [5, 238], [6, 223], [7, 275], [8, 31]]
我應該能夠在視圖中使用該變量,並將var myData
設置為它,例如:
var myData = "<%= @a %>";
我試過其他的事情:
var myData = JSON.parse( "<%= @a.to_json %>" );
但似乎沒什么用。 有什么我能做的嗎?
編輯:
控制器傳入視圖(@a)的數組存在問題,該視圖為空。 我能夠使用:
var myData = JSON.parse( "<%= @a.to_json %>" );
顯示正確數據傳遞到視圖中的折線圖。
看起來就像你讓它工作但你可以稍微清理一下:
<%= javascript_tag do %>
window.myData = <%=raw @a.to_json %>;
<% end %>
或者在rails 3中你可以超級HTML5 savy並使用data
助手將你的數據添加為一些html標簽的att:
<%= content_tag "div", id: "myDiv", data: {stuff: @a} do %>
<!-- some html stuff...-->
<% end %>
然后在javascript中(使用jQuery):
var myData = $('#myDiv').data("stuff")
對於超級熱衷,看看這個railscast
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.