我正在尝试使用Ajax使用Seer显示折线图。
但是当我发出ajax请求时,我得到的只是一个空白页。当我显示使用render :partial
时,相同的部分工作正常。
这是部分_show.html.erb
<div id="chart"></div>
<%= Seer::init_visualization -%>
<%= Seer::visualize(
sensors,
:as => :line_chart,
:in_element => 'chart',
:series => {
:series_label => 'location',
:data_label => 'id',
:data_method => 'value',
:data_series => series
},
:chart_options => {
:height => 250,
:width => 500,
:axis_font_size => 12,
:colors => ['#0099CC','#990000','#009900'],
:title => "Rain Data",
:point_size => 0,
:line_size => 3,
:title_y => "Water Level in Feet",
:smooth_line => "true",
}
)
-%>
这有效:
<%= render :partial => 'hcfcdsensors/show', :locals => {:sensors => @sensors , :series => @series} %>
但这不是:
<%= link_to_remote "show" , :url => show_graph_hcfcd_url(@hcfcdsensors) ,:update => "graphDiv" %>
完整的网页空白。 我已经检查了页面中所需变量的操作和可用性,一切都很好。
欢迎任何帮助。
由于 Shaunak
答案 0 :(得分:1)
进行ajax调用时,需要手动绘制图表。 查看用户“drawChart()”方法绘制图表。
以下是我的ajax回复
<% result_script = Seer::visualize(
@flight_result_search.sell_classes_for_graph,
:as => :area_chart,
:in_element => 'historical_sellout_chart',
:series => {
:series_label => 'name',
:data_label => 'days_prior',
:data_method => 'capacity',
:data_series => [@flight_result_search.current_sell_for_graph,@flight_result_search.historical_sell_for_graph]
},
:chart_options => {
:height => 400,
:width => 600,
:axis_font_size => 11,
:title => "Historical Sell Out Chart",
:point_size => 3,
:color =>['#324F69','#90000B']
}
)
%>
<%= result_script.gsub("</script>",' drawChart();</script>') %>
不要忘记评估你的ajax响应,因为它是javascript代码。 另外drawChart()应该在同一个脚本标记中,否则它不起作用。
答案 1 :(得分:0)
一些问题......如果你移动&lt;%= Seer :: init_visualization - %&gt;会发生什么?到封闭的页面而不是部分?此外,请在刷新页面时检查是否存在任何JavaScript错误。在Safari或Firefox中,打开控制台进行检查。