向JavaScript传递参数,或从JavaScript传递参数&;轨道

向JavaScript传递参数,或从JavaScript传递参数&;轨道,javascript,ruby-on-rails,google-maps,Javascript,Ruby On Rails,Google Maps,在我的Rails应用程序中,我有一个helper方法location,它获取给定IP地址的坐标,并使它们在所有控制器和视图中都可用。例如,位置。纬度返回用户的纬度。你明白了 我还有一些Javascript,它根据给定的lat/lon对从googlemapsapi绘制地图。问题是我不知道如何将位置参数传递到JavaScript中 JavaScript驻留在“application.js”中,如下所示: $(document).ready(function() { //Map op

在我的Rails应用程序中,我有一个helper方法
location
,它获取给定IP地址的坐标,并使它们在所有控制器和视图中都可用。例如,位置。纬度返回用户的纬度。你明白了

我还有一些Javascript,它根据给定的lat/lon对从googlemapsapi绘制地图。问题是我不知道如何将
位置
参数传递到JavaScript中

JavaScript驻留在“application.js”中,如下所示:

$(document).ready(function() 
  { 

    //Map options...I want the params to go into the var 'MapOptions' below

    function initialize() {
      var mapOptions = {
        center: new google.maps.LatLng(40.764698,-73.978972),
        zoom: 13,
        mapTypeId: google.maps.MapTypeId.ROADMAP
        };

    //Setup and Draw the Map...
    //....................................
  };
在HTML中调用映射本身,如下所示。没有一种明显的方法可以传递参数

<div id="map_canvas">
  <!-- The Map gets drawn here! -->
</div>


我知道这可能是一个显而易见的问题,但我以前从未以这种方式将参数从应用程序传递到Javascript。

您可以将lat和long分配给视图中的隐藏字段。在applications.js脚本中,只需像
$(“#lat”).val()那样获取它们。
不是最终的解决方案,但应该可以很好地工作。

我认为在这里可以很好地工作

html


在Gon gem的帮助下,可以简化将数据传递到javascript的过程
例如,在控制器中使用gon定义任何内容:

class FooController < ApplicationController

  def show_map
    #....
    gon.mapLatLong = [40.764698,-73.978972]
参考资料:


请看下一页,该页解释了如何将数据传递到JavaScript:

简而言之,只需使用:

<%= javascript_tag do %>
   window.productsURL = '<%= j products_url %>';
<% end %>

window.productsURL='';

然后在脚本中的任何地方参考productsURL。

嘿,乔!欢迎那天晚上见到你!JavaScript可能是我最薄弱的一点,因为我只是出于必要才开始做前端。再次感谢你,伙计!不应该是:
center:new google.maps.LatLng(gon.mapLatLong[0],gon.mapLatLong[1]),
$(document).ready(function() { 

  //Map options...I want the params to go into the var 'MapOptions' below

  function initialize() {
    var mapDiv = $('#map_canvas');
    var lat = mapDiv.data('latitude'),
        lng = mapDiv.data('longitude');

    var mapOptions = {
      center: new google.maps.LatLng(lat,lng),
      zoom: 13,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };

  //Setup and Draw the Map...
  //....................................
};
class FooController < ApplicationController

  def show_map
    #....
    gon.mapLatLong = [40.764698,-73.978972]
<%= include_gon %>
center: new google.maps.LatLng(gon.mapLatLong[0],gon.mapLatLong[1]),
<%= javascript_tag do %>
   window.productsURL = '<%= j products_url %>';
<% end %>