【问题标题】:Gmap4Rails.direction in a partial render via AJAX通过 AJAX 部分渲染的 Gmap4Rails.direction
【发布时间】:2013-02-11 21:45:07
【问题描述】:

我有一个列表,其中显示了与给定地址的距离的一些地方。此列表在使用过滤系统时由 ajax 更新。在我的部分 _place.html.haml 我使用这个:

- distance = Gmaps4rails.destination({:from => session[:address], :to => place.full_address}, options={}, output='pretty')
    %p= "Distance: #{distance.first["distance"]["text"]} (#{distance.first["duration"]["text"]})"

现在,当我使用 ajax 提交我的过滤器表单(为此使用 pjax)时,ajax 调用已正确完成,但在通过 ajax 渲染部分后,页面在调用函数 Gmaps4rails.destination 后刷新完整(没有 ajax)。所以它会阻止 ajax 调用/函数。

当我从部分 _place.html.haml 中删除此代码时,ajax 过滤功能运行良好,并且整个页面没有刷新。我应该怎么做/改变才能让它与 ajax 一起使用?

【问题讨论】:

    标签: ajax ruby-on-rails-3 google-maps-api-3 gmaps4rails


    【解决方案1】:

    抱歉,我没有完全理解您的问题,但从描述来看,您似乎正在使用 pjax 并且还显示带有一些过滤条件的地图。

    我还在一个应用程序中使用了 pjax 和 google-map。

    场景:在单个页面上,我有两个选项卡,在选项卡开关处,我使用 pjax 在相同的 div 中加载内容。在我想显示地图的两个选项卡上,两个选项卡都使用相同的地图容器,所以我面临的问题是,pjax 运行成功,但地图没有加载。 (为了加载地图标记,我添加了正在执行但未正确反映的 ajax 调用。)

    解决方案: 添加 pjax:end 事件

    $("#your-div").bind 'pjax:end', ->
      # load you markers or call gmap related event
    

    所以一旦你的 pjax 完成,你的地图相关事件就会发生。

    这可能不是您问题的直接解决方案。但希望这会有所帮助。 谢谢。

    【讨论】:

      猜你喜欢
      • 2015-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 2012-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多