9

我阅读了以下有关如何获取 Google 地图以及gmaps.js使用 RequireJS 的文章。然而,当我构建我的项目时,RequireJS 被替换为 Almond。在上面的文章中,它指出 Almond 不能与 RequireJS 异步插件一起使用。如果没有 async 插件,Google 的依赖项就不会被加载,并且会gmaps.js抛出错误。

有没有办法解决这个问题,并且仍然在使用 Almond 而不是 RequireJS 的项目中加载谷歌地图代码?

4

2 回答 2

1

是的,我也在找这个。它说动态库无法加载。我想你必须在本地下载它。

于 2013-06-27T15:18:09.980 回答
0

Almond.js 无法处理异步插件。您可以使用 jQuery.Deferred 来加载库。

var googleMapsLoader = function(func, options) {
    var defaults = { 
        "sensor"   : "false", 
        "v"        : "3", 
        "key"      : "", 
        "language" : "pt", 
        "region"   : "br",
        "libraries": ""
     };

     $.when($.ajax({
         type: "GET",
         dataType: "script",
         data: $.extend({}, defaults, options),
         url: "https://maps.google.com/maps/api/js",
         crossDomain: true
     })).then(function() {
         func();
     });
};

/*
 * Loading Google Maps API with $.Deferred.
 */
googleMapsLoader(function() {
    // You may call your code here.
}, {
    "libraries" : "geometry,places",
    "v"         : "3.7"
});

看看这个使用 $.Deferred 和 Maplace 的例子。

于 2016-07-13T18:24:48.280 回答