2017-07-17 32 views
-1

我想在框架7中加載我的地​​圖,但我無法做到這一點。我得到的錯誤是谷歌是未定義的。框架7中的地圖

下面是我的代碼

JavaScript代碼

CascadingApp.onPageInit('admin', function(page) { 
    initialize(); 
}); 

function initialize() { 
    var map = null; 
    var latlng; 
    latlng = new google.maps.LatLng(37.4419, -122.1419); 
    var options = { 
     zoom: 13, 
     center: latlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    } 
    var map = new google.maps.Map(document.getElementById("map"), options); 
} 

HTML代碼

<div id="map" style="height:400px; width:1200px;"></div> 

<script src="https://maps.googleapis.com/maps/api/js?key= AIzaSyAWzZ-1BPmaWKFT0du3cis82mj9Y5ljIgk&callback=initMap" async defer></script> 

不頁面加載地圖。

+0

谷歌地圖回調函數'initMap',那就是一旦加載API會調用該函數。您在API可用之前調用'initialize'。 – geocodezip

+0

@geocodezip我不熟悉這個,你可以提供一個示例代碼或者將我推薦給一個。謝謝 –

回答

0

在您的index.html文件中添加google api腳本<script src="https://maps.googleapis.com/maps/api/js?key= AIzaSyAWzZ-1BPmaWKFT0du3cis82mj9Y5ljIgk&callback=initMap" async defer></script>。目前api存在admin.html模板。所以當 管理員視圖加載 CascadingApp.onPageInit('admin', function(page) {initialize();});在那個時候谷歌API是不是滿載即異步行爲和拋出錯誤谷歌未定義。因此,只需將google api放入index.html頁面即可。 希望它可以幫助你!

0

我在index.html底部添加了Google腳本,但沒有回調函數。

<script async defer 
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY"> 
</script> 

接下來,我app.js腳本,聲明變量地圖全球和創建下面的函數給init地圖時EL頁面完全加載:

$$(window).on('load', function(e) { initMap(); });

定義的init函數在同一個app.js中,記得設置一個樣式來映射div(至少是寬度和高度)。

希望對您有所幫助;-)