Jquery 将标记id传递到rails部分gmaps4rails v2
我正在使用Jquery 将标记id传递到rails部分gmaps4rails v2,jquery,ruby-on-rails,google-maps,gmaps4rails,Jquery,Ruby On Rails,Google Maps,Gmaps4rails,我正在使用gmaps4railsv2并将marker.id作为我的“Land.id”传递。我正在尝试将变量传递到一个partial中,就像传递到info窗口中一样 信息窗口:(lands\u controller.rb) @hash=Gmaps4rails.build_标记(@lands)do | land,marker| marker.lat land.latitude marker.lng land.longitude marker.title "#{land.name}" ma
gmaps4rails
v2
并将marker.id作为我的“Land.id”传递。我正在尝试将变量传递到一个partial中,就像传递到info窗口中一样
信息窗口:(lands\u controller.rb)
@hash=Gmaps4rails.build_标记(@lands)do | land,marker|
marker.lat land.latitude
marker.lng land.longitude
marker.title "#{land.name}"
marker.picture({
"url" => ActionController::Base.helpers.image_path("crosshair.png"),
"width" => 10,
"height" => 10})
marker.infowindow render_to_string(partial: "/layouts/popupbox", locals: {l: land})
marker.json({ :id => land.id })
end
要在单击标记时移动零件并加载它:
映射部分(_gmap.html.erb)
google.maps.event.addListener(marker.getServiceObject(),'click',function()){
land=;
$(#侧边栏).html(“”);
});
这不管用,但有办法做到吗?它可能与或相同,但我无法从这些答案中修复它。@apreading是正确的,无法从js中渲染部分。如果其他人也有类似的问题,我可以通过使用带有ajax post请求的点击处理程序来解决,并使用jQuery从rails加载部分内容 映射部分(_gmap.html.erb) 路由器(routes.rb) 控制器(lands\u Controller.rb) 查看(sideinfo.js.erb)
$(“#info”).html(“”)
你不能用这种方式混合ruby和js,这会输出静态js你有办法解决这个问题吗?谢谢你的回复。提供生成的javascript,这样我就有了一个真正的想法,我想我可以理解这一部分。实际上我还有一个问题。当我做marker.setAnimation(google.maps.Animation.BOUNCE)时
或marker.infowindow()
在单击处理程序中,它给出了一个未定义的错误。这实际上与我的另一个问题(已解决)有关,因此我不确定是否在此处或此处发表评论,或者只是更改此问题。与其他任何地方一样,使用标记。getServiceObject()。单击列表中的setAnimation
始终为我提供最后一个id。您能告诉我如何获取特定的标记id吗?提前许多天:)
land = <% Land.find_by_id(marker.id) %>;
$(#sidebar).html("<%= escape_javascript(partial: '/layouts/popupbox', locals: {l: land})%>");
});
var n = marker.getServiceObject().title;
google.maps.event.addListener(marker.getServiceObject(), 'click', function() {
$.post('/lands/sideinfo', { name: n });
});
resources :lands do
collection {post :sideinfo}
end
def sideinfo
@l=Land.find_by_name(params['name'])
respond_to do |format|
format.js
end
end
$("#info").html("<%= j render partial: '/layouts/popupbox', locals: {l: @l} %>")