2012-04-02 68 views
1

當地圖加載或處於「閒置」狀態時,我無法獲得使用gmaps4_rails的Javascript回調。基於維基無法獲得Gmaps4rails回調工作

和這個其他SO質疑Dynamically load Google Maps Markers with gmaps4rails我認爲這會觸發所有警報在這樣的觀點:

<%= gmaps(:map_options => {:detect_location => true, 
          :center_on_user => true, 
          :auto_zoom => true, 
          :zoom => 12, 
          :auto_adjust => false}, 
      :markers => {:data => @json, 
         :options => {:processsing => "@json", 
            :list_container => "markers_list", 
            :do_clustering => true 
                 } }) %> 
<ul id="markers_list"> </ul> 

<script type="text/javascript" charset="utf-8"> 
    alert("About to register callback"); 
    Gmaps.map.callback = function() { 
    alert("Map Loaded Callback Reached"); 
    } 

    function gmaps4rails_callback() { 
    alert("gmaps4_rails callback"); 
    } 
</script> 

<%= yield :scripts %> 

相反,我只得到了「關於登記回調」警報。其他功能似乎從未被調用。我有一種感覺,我誤解了關於名稱空間的一些東西,但任何洞察力都將被讚賞 - 我試圖從事件設置從JSON端點刷新,因爲地圖移動了,但我沒有很多運氣能夠越過這個確保我可以觸發回調的第一步。

我應該注意地圖正常顯示,我的初始數據都在那裏。

回答

1

按照文檔here,你必須在content_for :scripts

包裹js代碼,爲什麼?

因爲gmaps4rails js代碼應該先加載。

+0

你能有多個Gmaps.map.callback嗎? – kidbrax 2013-01-03 16:53:17

+0

@kidbrax:每個地圖只有一個回調。 'Gmap.map'是一張地圖 – apneadiving 2013-01-03 16:55:02

+0

謝謝。我在http://stackoverflow.com/questions/14144350/gmaps4rails-callback-not-firing上發佈了一個相關的問題,如果你喜歡看一看。 – kidbrax 2013-01-03 17:50:23