无法让Gmaps4rails回调正常工作

时间:2012-04-02 22:59:51

标签: ruby-on-rails ruby-on-rails-3 gmaps4rails

当地图加载或处于“空闲”状态时,我无法使用gavascript回调来处理gmaps4_rails。

基于wiki和其他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 个答案:

答案 0 :(得分:1)

根据文档here,您必须将js代码包装在content_for :scripts

为什么?

因为gmaps4rails js代码应该先加载。