簡體   English   中英

如何將Ruby數組傳遞給Javascript以生成折線圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM