我花了几个小时在StackOverflow上阅读解决方案并尝试了所有方法,但我仍然没有找到解决方案。
我正在
unCaught参考错误:未定义Gmaps
这
handler = Gmaps.build('Google');
我已经多次重新安排我的脚本标签以尝试解决此问题。他们现在坐在我的'application.html.erb'
布局中,看起来像这样:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
Remove this if you use the .htaccess -->
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>NomadSpaces</title>
<meta name="description" content="">
<meta name="author" content="Christopher Dodd">
<meta name="viewport" content="width=device-width; initial-scale=1.0">
<!-- Replace favicon.ico & apple-touch-icon.png in the root of your domain and delete these references -->
<%= favicon_link_tag '/favicon.ico' %>
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<%= stylesheet_link_tag('application', :media => 'all') %>
<%= stylesheet_link_tag('spaces', :media => 'all') %>
<%= javascript_include_tag 'application', "data-turbolinks-track" => true %>
<%= yield :javascripts %> // Code that calls Gmaps
<%= javascript_include_tag 'gmaps_api.js' %>
<%= javascript_include_tag 'markerclusterer_packed.js' %>
</head>
<body>
<%= yield %>
</body>
</html>
我的application.js文件如下所示:
// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
// GO AFTER THE REQUIRES BELOW.
//
//= require jquery
//= require jquery.ui.all
//= require jquery_ujs
//= require underscore
//= require gmaps/google
//= require bootstrap
//= require_tree .
详细的违规行为:
handler.buildMap({
internal: {id: 'sidebar_builder'},
provider: {
zoom: 15,
center: new google.maps.LatLng(53.385873, -1.471471),
mapTypeId: google.maps.MapTypeId.ROADMAP,
styles: mapStyle
}
}, function(){
var json_array = <%=raw @hash.to_json %>;
var markers = handler.addMarkers(json_array);
_.each(json_array, function(json, index){
json.marker = markers[index];
});
createSidebar(json_array);
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
});
地图应显示的空间:
<div class="row">
<div id="map-area">
<div id="sidebar_builder" class="visible"></div>
<div class="ball"></div>
<p class="loading">LOADING SPACES</p>
</div>
<div id='sidebar_container'></div>
</div>
请帮忙!
答案 0 :(得分:0)
我有一个朋友查看我的项目,发现错误的原因是application.js
没有编译,因此gmaps javascript没有加载到页面上。
有了这些知识,我们回到Stack Overflow并尝试更改ruby版本来解决这个问题。不幸的是,这不起作用。
为了解决这个问题,我开始了一个新的rails项目,并从旧项目中复制了重要的代码。我的application.js
文件现在正确加载,一切正常。