javascript - Google map 未以部分 View 显示

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

我想在部分 View 中显示谷歌地图,我使用 jQuery 称之为它。详细信息如下:

在我的dashboard.html.haml中:

= link_to 'Map', preview_map_static_pages_path,  :remote => true

.col-sm-4.col-md-10
      #dashboard_preview

在我的 Controller 中:

def preview_map
        respond_to do | format |
            format.js {render :layout => false}
        end
end

在我的preview_map.js.erb中

$( "#dashboard_preview" ).html( "<%= escape_javascript( render "map/map" ) %>" );

还有我的 map /_map.html.haml

#map-container
  #map-canvas

问题是当我点击 = link_to 'Map', Preview_map_static_pages_path, :remote => true 时, map 未显示。我做错了什么?抱歉英语不好。感谢您的帮助:)

最佳答案

在运行 google map javascript 后,您将使用 javascript 渲染 map/_map.html,这就是您的 map 无法加载的原因。尝试将谷歌地图脚本包含到您的map/_map.html.haml

#map-container
  #map-canvas

%script(src="https://maps.googleapis.com/maps/api/js?key=API_KEY")
:javascript
  var mapOptions = {
    center: { lat: -34.397, lng: 150.644},
    zoom: 8
  };
  var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

另一种选择是在 Preview_map.js.erb 中渲染 map/_map 后调用 google map 初始化函数

$( "#dashboard_preview" ).html( "<%= escape_javascript( render "map/map" ) %>" );
var mapOptions = {
  center: { lat: -34.397, lng: 150.644},
  zoom: 8
};
var map = new google.maps.Map($("#map-canvas")[0], mapOptions); 

关于javascript - Google map 未以部分 View 显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27358065/

相关文章:

javascript - .getAttribute 不是函数

php - ajax 获取 id 未定义

ruby-on-rails - ruby rails : serialize Hash incredibly slow

javascript - 使用Javascript如何交换文本框的ID

javascript - 已经设置后,如何将 React Hooks 设置为另一个值

javascript - 从对象内部获取对象的键

javascript - 调用服务器方法,无需刷新页面

JQuery 拖放 : Accessing Sortable() Divs

sql - 具有多个用户角色的数据库设计

css - Bootstrap 和 Rails