2011-04-27 110 views
2

我正在嘗試使用使用Ajax的Seer來顯示線圖。Ruby on Rails上的Gem Seer和Ajax

但是我得到的是一個空白頁面,當我發出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

在進行ajax調用時,您需要手動繪製圖表。 Seer用戶「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>') %> 

不要忘了EVAL你的Ajax響應,因爲它是JavaScript代碼。 另外drawChart()應該在相同的腳本標記中,否則它不起作用。

+0

嗨Dinesh,這工作對我的快速嘗試,我可以看到圖表,當我在瀏覽器中使用ajax鏈接,但現在當我真的把它放在Rails應用程序,它仍然是空白,這次只有錯誤是「容器未定義」。 – Shaunak 2011-10-04 21:44:20

0

夫婦的問題...如果你移動<%=先知:: init_visualization會發生什麼 - %>到封閉頁面,而不是局部的?另外,在刷新頁面時檢查是否有任何JavaScript錯誤。在Safari或Firefox中,打開控制檯進行檢查。

+0

當我將<%= Seer :: init_visualization - %>移動到封閉頁面時,會得到相同的結果。我在Chrome上使用chrome和控制檯工具。最初在頁面上沒有錯誤。當我點擊製作的鏈接和ajax請求時,我只是得到一個空白頁面。 – Shaunak 2011-04-27 20:39:06

+0

我清理了一些東西,並把它放在一個乾淨的頁面上查看。我仍然有同樣的問題。這一次我得到一個錯誤:'[16:34:30.093]谷歌未定義/javascripts/prototype.js?1300914093:403'在Firefox中。 – Shaunak 2011-04-27 21:36:21

+0

但同時,如果我嘗試鏈接ajax單獨使用我可以看到圖形沒有問題。 – Shaunak 2011-04-27 21:37:50