Eri*_*ric 7 javascript json ruby-on-rails 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>
Run Code Online (Sandbox Code Playgroud)
我将该代码放入stats.html.erb中,然后显示出来.但是,我需要它来显示我提供的线图数据.在控制器中创建一个二维数组:
>> @a
=> [[1, 395], [2, 244], [3, 223], [4, 210], [5, 238], [6, 223], [7, 275], [8, 31]]
Run Code Online (Sandbox Code Playgroud)
我应该能够在视图中使用该变量,并设置var myData
为它,例如:
var myData = "<%= @a %>";
Run Code Online (Sandbox Code Playgroud)
我试过其他的事情:
var myData = JSON.parse( "<%= @a.to_json %>" );
Run Code Online (Sandbox Code Playgroud)
但似乎没什么用.有什么我能做的吗?
编辑:
控制器传入视图(@a)的数组存在问题,该视图为空.我能够使用:
var myData = JSON.parse( "<%= @a.to_json %>" );
Run Code Online (Sandbox Code Playgroud)
显示正确数据传递到视图中的折线图.
看起来就像你让它工作但你可以清理一下:
<%= javascript_tag do %>
window.myData = <%=raw @a.to_json %>;
<% end %>
Run Code Online (Sandbox Code Playgroud)
或者在rails 3中你可以超级HTML5 savy并使用data
帮助器将你的数据添加为一些html标签的att:
<%= content_tag "div", id: "myDiv", data: {stuff: @a} do %>
<!-- some html stuff...-->
<% end %>
Run Code Online (Sandbox Code Playgroud)
然后在javascript中(使用jQuery):
var myData = $('#myDiv').data("stuff")
Run Code Online (Sandbox Code Playgroud)
对于超级热衷,看看这个railscast