2015-04-07 88 views
0

我花了幾個小時在StackOverflow上閱讀解決方案,並嘗試了所有內容,但仍未找到解決方案。gmaps4rails 2.4.6未捕獲參考錯誤:Gmaps未定義

我越來越

unCaught Reference Error: Gmaps not defined

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

感謝您的評論。是的,我有 – Doddychris

+0

處理程序= Gmaps.build('Google'); ?handler.buildMap {{provider:{},internal:{id:'map'}},function(){ markers = handler.addMarkers([ { 「lat」:0, 「lng」:0 , 「picture」:{ 「url」:「https://addons.cdn.mozilla.net/img/uploads/addon_icons/13/13028-64.png」, 「width」:36, 「height 「:36 }, 「信息窗口」: 「你好!」 } ]); handler.bounds.extendWith(標記); handler.fitMapToBounds(); });' –

回答

0

我有一位朋友看看我的項目,發現錯誤的原因是application.js沒有編譯,因此gmaps javascript沒有加載到頁面上。

有了這些知識,我們回到了堆棧溢出,並嘗試改變ruby版本來解決這個問題。不幸的是,這並沒有奏效。

爲了解決這個問題,我開始了一個新的rails項目,並複製了舊項目中的重要代碼。我的application.js文件現在正在正確加載,並且所有內容都正常工作。