2012-12-16 9 views
9

Googleマップの入手方法についてはarticle、RequireJSの場合はgmaps.jsと表示されています。しかし、プロジェクトをビルドすると、RequireJSがAlmondとスワップされます。上記の記事では、AlmondがRequireJS非同期プラグインで動作しないことを述べています。非同期プラグインがなければ、Googleの依存関係は読み込まれず、gmaps.jsはエラーをスローします。almond.jsで動作するRequireJS非同期プラグインを取得する

問題を回避し、依然としてRequireJSではなくAlmondを使用するプロジェクトでGoogleマップコードを読み込む方法はありますか?

答えて

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を参照してください。

関連する問題