使用almond.js使RequireJS异步插件正常工作

9
我读到了关于如何在使用RequireJS的项目中获取Google Maps和gmaps.js的文章,然而当我构建我的项目时,RequireJS被Almond替换。在上述文章中,它指出Almond将无法与RequireJS异步插件一起工作。没有异步插件,Google的依赖项不会加载,gmaps.js会抛出一个错误。
是否有一种方法可以解决这个问题,在使用Almond而不是RequireJS的项目中仍然加载Google地图代码?
2个回答

1

是的,我也发现了这个问题。它说无法加载动态库。我想你需要将其下载到本地。


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的这个例子


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接