向JavaScript传递参数,或从JavaScript传递参数&;轨道
在我的Rails应用程序中,我有一个helper方法向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
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 %>