如何将ruby放入javascript函数GoogleMaps中?
我有一个RubyonRails应用程序,它有一个谷歌地图,上面有一个标记,当你点击它时,它会用javascript打开一个信息窗口。我想把ruby var放在这个javascript fn中,它在窗口中显示来自数据库的信息 因此,当用户单击标记时,他们从数据库中获取动态信息,而不仅仅是js fn中的一般文本如何将ruby放入javascript函数GoogleMaps中?,javascript,ruby-on-rails,google-maps,Javascript,Ruby On Rails,Google Maps,我有一个RubyonRails应用程序,它有一个谷歌地图,上面有一个标记,当你点击它时,它会用javascript打开一个信息窗口。我想把ruby var放在这个javascript fn中,它在窗口中显示来自数据库的信息 因此,当用户单击标记时,他们从数据库中获取动态信息,而不仅仅是js fn中的一般文本 如果以前有人这样做过,如果您能告诉我您是如何做到的,我将不胜感激。谢谢您可以使用标记将javascript直接放在html.erb文件上,并在javascript中运行嵌入式ruby代码。请
如果以前有人这样做过,如果您能告诉我您是如何做到的,我将不胜感激。谢谢您可以使用标记将javascript直接放在html.erb文件上,并在javascript中运行嵌入式ruby代码。请记住转义Java脚本,因为有时变量会被一些特殊字符(如撇号)弄乱脚本
<script>
alert(<%= escape_javascript @variable %>);
</script>
警惕();
您可以使用标记将javascript直接放在html.erb文件上,并在javascript中运行嵌入式ruby代码。请记住转义Java脚本,因为有时变量会被一些特殊字符(如撇号)弄乱脚本
<script>
alert(<%= escape_javascript @variable %>);
</script>
警惕();
Edward使用erb处理Javascript文件的解决方案将起作用(不过您必须记住在JS文件末尾添加.erb,以便erb知道如何处理它…即maps.JS.erb)
问题是,这与我所理解的资产管道的理念背道而驰。Rails故意将所有Javascript连接到一个文件中,以节省HTTP请求的开销。然而,更重要的是,浏览器缓存这个文件,这样他们就不需要在每次请求时重新蚀刻它。如果您有一个变量根据请求更改JS文件,Rails需要为每个请求重新处理JS文件,这是非常昂贵的。(请注意,同样的概念也适用于CSS)
我找到的最佳解决方案是以某种方式将变量值放入页面中,因为这是一个需要在每个请求中动态处理的文件。通常我看到人们把它们隐藏起来,比如:
<%= content_tag :input, nil, :type => 'hidden', :id => "map-name-field", :'data-name' => @map.name %>
Edward使用erb处理Javascript文件的解决方案将起作用(不过您必须记住在JS文件末尾添加.erb,以便erb知道如何处理它…即maps.JS.erb) 问题是,这与我所理解的资产管道的理念背道而驰。Rails故意将所有Javascript连接到一个文件中,以节省HTTP请求的开销。然而,更重要的是,浏览器缓存这个文件,这样他们就不需要在每次请求时重新蚀刻它。如果您有一个变量根据请求更改JS文件,Rails需要为每个请求重新处理JS文件,这是非常昂贵的。(请注意,同样的概念也适用于CSS) 我找到的最佳解决方案是以某种方式将变量值放入页面中,因为这是一个需要在每个请求中动态处理的文件。通常我看到人们把它们隐藏起来,比如:
<%= content_tag :input, nil, :type => 'hidden', :id => "map-name-field", :'data-name' => @map.name %>
您希望Ruby中的信息直接嵌入到页面中,还是AJAX是一个选项?(向服务器发出web请求的JavaScript)检查gmaps4rails源代码是否希望Ruby中的信息直接嵌入页面中,或者AJAX是一个选项?(向服务器发出web请求的JavaScript)检查gmaps4rails源代码