Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将ruby放入javascript函数GoogleMaps中?_Javascript_Ruby On Rails_Google Maps - Fatal编程技术网

如何将ruby放入javascript函数GoogleMaps中?

如何将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代码。请

我有一个RubyonRails应用程序,它有一个谷歌地图,上面有一个标记,当你点击它时,它会用javascript打开一个信息窗口。我想把ruby var放在这个javascript fn中,它在窗口中显示来自数据库的信息

因此,当用户单击标记时,他们从数据库中获取动态信息,而不仅仅是js fn中的一般文本


如果以前有人这样做过,如果您能告诉我您是如何做到的,我将不胜感激。谢谢您可以使用标记将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源代码