2011-12-10 44 views
1

我錯過了一些明顯的東西嗎?地圖不斷加載我在控制器中設置的@oldjson,並且在我將其設置在視圖中時不會被替換。Google Maps For Rails replaceMarkers無法正常工作

查看代碼:

<% @json = Map.find_by_id('39').to_gmaps4rails %> 
<%= gmaps("markers" => {"data" => @oldjson, "options" => { "draggable" => true } }) %> 
<script>  
    Gmaps.map.replaceMarkers(<%= @json %>); 
</script> 

感謝。

回答

0

我想你「重新面對一個js錯誤這個當前代碼

原因如下:

  • 使用和創造gmaps4rails距離yield :scripts

  • 把JS
  • 所以你的這個額外的js在地圖創建之前叫做

解決方案:

<% @json = Map.find_by_id('39').to_gmaps4rails %> 
<%= gmaps("markers" => {"data" => @oldjson, "options" => { "draggable" => true } }) %> 
<% content_for :scripts do %> 
<script>  
    Gmaps.map.replaceMarkers(<%= @json %>); 
    </script> 
<% end %> 
+0

確定這更有意義,得到一個JS錯誤,雖然gmaps4rails.googlemaps.js的:280遺漏的類型錯誤:無法調用空的方法「fitBounds」。你知道這可能是什麼原因? – Dan

+0

你有什麼版本的寶石? – apneadiving

+0

只是想着:它需要異步時間來創建一個地圖,它是標記。因此,在地圖本身準備就緒之前,您自己的代碼仍可能被觸發。這就是爲什麼我創建了回調方法,您可以安全地放置任何你需要的東西。請參閱文檔plz – apneadiving

相關問題