是否可以访问谷歌地图实例而不使其成为全局变量?

时间:2017-02-01 15:49:16

标签: javascript angularjs google-maps google-maps-api-3 npm

谷歌地图API文档使用script标签访问谷歌地图实例,使其成为全局变量。是否可以访问地图实例而不是全局?

angular-google-maps npm / bower包不使用脚本标记,但遗憾的是它现在没有维护,这就是我正在处理的项目正在远离它的原因。

1 个答案:

答案 0 :(得分: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>

你的应用程序&#34;模块必须是&#34; global&#34;,但仅仅因为它是必要的。我确定还有其他方法可以做到,但这是我首先想到的。