Получение RequireJS асинхронного плагина, работающего с almond.js

Я прочитал следующую статью о том, как получить Google Maps, и gmaps.js работать с RequireJS. Однако, когда я строю свой проект, RequireJS поменялся местами с Almond. В статье выше говорится, что Almond не будет работать с асинхронным плагином RequireJS. Без плагина async зависимости Google не загружаются, и gmaps.js кинь ошибку.

Есть ли способ обойти эту проблему и по-прежнему загружать код карт Google в проекте, который использует Almond, а не RequireJS?

2 ответа

Да, я тоже нахожу это. Динамические библиотеки не могут быть загружены, говорит он. Я думаю, вам придется скачать его локально.

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.

Другие вопросы по тегам