【问题标题】:First load time app loads using Gmaps4rails gem map won't load首次加载时使用 Gmaps4rails gem map 加载的应用程序不会加载
【发布时间】:2015-02-25 22:11:52
【问题描述】:

我已经为此苦恼了 2 天,并阅读了这里的每一篇文章,并尝试了几乎所有的方法。这是我的 JS,在第一次刷新页面后一切正常,但是在启动新浏览器时,第一次调用地图时失败。我收到错误:

Uncaught TypeError: Cannot read property 'addMarker' of undefined

这是我的代码:我尝试了很多不同的方法。请有人帮我解决这个问题!?

$(document).on("ready page:load", getDivData);

function getDivData(){
  var data = $('#gmap').data('mapdata');
  renderGoogleMap(data);
}

function renderGoogleMap(data) {
  var mapData = data;
  handler = Gmaps.build('Google');
  handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
    markers = handler.addMarkers(mapData);
    handler.bounds.extendWith(markers);
    handler.fitMapToBounds();
    handler.getMap().setZoom(12);
  });
}

//= require jquery-2.1.1.min
//= require jquery-ui
//= require jquery_ujs
//= require_self
//= require autocomplete-rails
//= require twitter/bootstrap
//= require bootstrap-dark
//= require underscore
//= require events
//= require event_show
//= require turbolinks
//= require gmaps/google

在我的 HTML 标题中

  <title>MyApp</title>
  <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
  <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
  <%= csrf_meta_tags %>
  <script src="//maps.google.com/maps/api/js?v=3.13&amp;sensor=false&amp;libraries=geometry" type="text/javascript"></script>
  <script src='//google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.14/src/markerclusterer_packed.js' type='text/javascript'></script>

【问题讨论】:

  • 实际上,在这个最新版本中,地图是在第一页加载时加载的,但它仍然抛出错误。这不是世界末日,因为至少它在起作用。我只是讨厌错误。任何想法将不胜感激。谢谢!

标签: jquery ruby-on-rails-4 turbolinks gmaps4rails2


【解决方案1】:

发现错误。仅当 var data 返回 true 时才应调用 getDivData() 函数。更新方法:

function getDivData(){
  var data = $('#gmap').data('mapdata');
  if(data){
    renderGoogleMap(data);
  }
}

【讨论】:

    猜你喜欢
    • 2023-02-17
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    • 2019-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多