【问题标题】:Pass LatLng from google maps click event to rails controller将 LatLng 从谷歌地图点击事件传递给 rails 控制器
【发布时间】:2016-05-12 19:00:33
【问题描述】:

我正在使用谷歌地图开发一个应用程序。我试图让用户能够长按一个位置并显示该位置的标记,然后在该标记信息窗口中将有方向链接(下一次迭代)并将该位置添加为保存区域,我'目前正在努力。我有代码

google.maps.event.addListener(map, 'mousedown', function(event){

      var counter=setInterval(timer, 1000);
      var latLng=event.latLng;
      var contentString= '<%= link_to "Add Parking Area", free_parking_areas_path(latLng), method: :post, id: "pass_latLng"%>'
      var infowindow = new google.maps.InfoWindow({
        content: contentString
        });

        google.maps.event.addListener(map, 'mouseup', function(event){
          clearInterval(counter);
        });

      function timer(){
        count=count-1;
        if (count <= 0)
        {
           var marker = new google.maps.Marker({
              position: latLng,
              map: map,
              title: "Unsaved Marker"
            });

            marker.addListener("click", function(){
              infowindow.open(map, marker);
            });
           return;
        }
      }
  });

但这只会引发错误ActionView::Template::Error (undefined local variable or method 'latLng' for #&lt;#&lt;Class:0x007fdee654f688&gt;:0x007fdeeb1f16d0&gt;):。知道如何将该 javascript 变量传递给我的控制器吗?

【问题讨论】:

    标签: javascript ruby-on-rails google-maps


    【解决方案1】:

    rails link_to 助手在 javascript 执行之前很久就渲染了,因此当 link_to 助手生成 html 链接时,javascript latlng 变量将永远不会被设置。

    您要么需要在 JS 中手动设置链接,要么使用外部来源,例如以下任何一个(或其他):

    向客户端站点公开您的服务器端数据/路由。

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-25
      • 1970-01-01
      • 2021-06-13
      相关资源
      最近更新 更多