2012-12-16 11 views
9

Google Maps'i almak için article ve RequireJS ile çalışmak için gmaps.js okudum. Ancak, projemi oluşturduğumda RequireJS Almond ile değiştirilir. Yukarıdaki makalede, Badem RequireJS async eklentisi ile çalışmayacağını belirtmektedir. Async eklentisi olmadan, Google'ın bağımlılıkları yüklenmez ve gmaps.js bir hata verir.Almond.js ile çalışma gerektirmeyen async eklentisi

Bu sorunu gidermek ve hala Google maps kodunu RequireJS'den ziyade Badem kullanan bir projeye yüklemek için bir yol var mı?

cevap

1

Evet, bunu da buluyorum. Dinamik kütüphaneler yüklenemez diyor. Yerel olarak indirmeniz gerekecek.

0

Almond.js can't handle with asynchronous plugins. Kütüphaneleri yüklemek için jQuery.Deferred'ı kullanabilirsiniz. $ .Deferred ve Maplace kullanılarak this example de

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" 
}); 

bak.