2012-12-16 71 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