我正在尝试使用https://github.com/millermedeiros/requirejs-plugins的异步模块来加载googlemap api。我的index.html文件包含以下requirejs配置:
<script data-main="scripts/myscript" src="scripts/require.js"></script>
<script>
requirejs.config({
"baseUrl": "scripts",
"paths": {
"async": "require_plugins/async",
"gmaps": "gmaps",
"infobox":"http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/src/infobox",
"jquery":"//code.jquery.com/jquery-2.1.1.min",
"jquery_mob":"//code.jquery.com/mobile/1.4.3/jquery.mobile-1.4.3.min"
},
waitSeconds: 15
});
我的所有javascript文件都存储在脚本文件夹中(相对于index.html) 例如script / myscript.js和script / require.js以及async插件存储在名为require_plugins的脚本的子文件夹中,例如:脚本/ require_plugins / async.js
我定义googlemap模块的javascript名为gmaps.js(存储在脚本文件夹中),如下所示:
define("GMAP",['async!https://maps.googleapis.com/maps/api/js? &key=xxxxxx®ion=uk&libraries=places,geometry'], function () {
return window.google.maps;
});
我在这里故意模糊了关键参数。根据文档,我应该能够在其他javascript文件中的任何位置使用gmaps模块,只需通过调用它:
require(["gmaps"],function(GMAP)
{
map= new GMAP.Map("#map-div");
//and then some code to display the map
}
不幸的是,它根本不起作用。似乎googlemap库根本没有加载。我使用jquery的绝对URL,并且工作正常,但googlemap失败了。我的问题是:我的requirejs配置有问题吗?我无法想到造成这种错误的其他因素:(
答案 0 :(得分:0)
我的理解是,您在define()
中设置的名称是编写依赖项时需要使用的名称。
e.g:
define('GMAP', ['async!<path>'], function() { return window.google.maps; });
require(['GMAP'], function(GMaps) { ... });
这就是我为GM加载GMaps的方法。我现在有一个次要问题,依赖于地图的其他库不再加载。