通过AJAX部分渲染Gmaps4Rails.direction

时间:2013-02-11 21:45:07

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

我有一个列表,其中显示了与给定地址的距离的一些地方。使用过滤系统时,此列表由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?

1 个答案:

答案 0 :(得分:0)

抱歉,我没有完全解决您的问题,但从说明中看,您似乎正在使用pjax并显示带有某些过滤条件的地图。

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

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

解决方案: 添加pjax:结束事件

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

因此,一旦您的pjax完成,您的地图相关事件就会发生。

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

相关问题