2012-12-16 48 views
9

工作我读了如何让谷歌地图下面article,并gmaps.js与RequireJS工作。然而,当我建立我的项目时,RequireJS与Almond交换。在上面的文章中,它指出杏仁不会与RequireJS异步插件一起使用。如果没有异步插件,Google的依赖关系不会被加载,并且gmaps.js会引发错误。获取RequireJS异步插件与almond.js

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

回答

1

是的,我也找到了。动态库不能被加载它说。我想你必须在本地下载它。

0

Almond.js can't handle with asynchronous plugins。您可以使用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查看this example