2017-02-01 6 views
1

Документы API карты google используют теги script для доступа к экземпляру карты google, который делает его глобальной. Возможно ли получить доступ к экземпляру карты, если он не является глобальным?Возможно ли получить доступ к экземпляру карты Google без его глобальной переменной?

angular-google-maps npm/bower package не использует теги скриптов, но, к сожалению, он не поддерживается сейчас, поэтому проект, над которым я работаю, уходит от него.

ответ

0

Вы можете поместить карту в модуль.

Например,

var app = (function(){ 

    var map = null; 
    var init = function(){ 
     map = new google.maps.Map(document.getElementById('map'), { 
      zoom: 10, 
      center: {lat:1, lng:1} 
     }); 

    return { 
     init: init 
    }; 

})(); 

А затем в сценарии тега HTML:

<script async defer src="https://maps.googleapis.com/maps/api/js?key=API_KEY&callback=app.init"></script> 

Ваш модуль "приложение" должен быть "глобальным", но только потому, что это необходимо. Я уверен, что есть другие способы сделать это, но это то, что впервые пришло в голову.

+0

Спасибо за ваш ответ. Проблема в том, что объект карты google все еще извлекается из глобального пространства. Я думаю, что я после этого найду, посмотрев под капот в исходном коде «угловые google-карты». Этот пакет не использует тег скрипта для его получения. – Rusticman