Получение 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.