Javascript 如何使用require js shim使用函数加载GoogleMaps依赖项?
我必须加载一个JS文件Javascript 如何使用require js shim使用函数加载GoogleMaps依赖项?,javascript,html,requirejs,Javascript,Html,Requirejs,我必须加载一个JS文件 requirejs([ MyCode/mapview ], function () { }); 现在这取决于谷歌地图 我也是 require( ["http://maps.google.com/maps/api/js?v=3.2&sensor=false"], function() { var gm = document.createElement('script'); gm
requirejs([
MyCode/mapview
],
function () {
});
现在这取决于谷歌地图
我也是
require( ["http://maps.google.com/maps/api/js?v=3.2&sensor=false"],
function() {
var gm = document.createElement('script');
gm.type = 'text/javascript'; gm.async = true;
gm.src = document.location.protocol + "//maps.google.com/maps/api/js?v=3.2&sensor=false";
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(gm, s);
}
);
就在这之前,在我的reuqire js include文件中。我使用了shim命令来加载其他本地JS依赖项,但我不知道如何将此依赖项(google地图、http访问的文件)分配给MyCode/mapview
我应该如何在shim中执行此操作?并在加载mapview.js之前运行该函数
requirejs.config({
shim:
{
'MyCode/mapview': ['????'],
}
});
当我得到这个错误时,我知道依赖关系,这是一个谷歌地图类型
未捕获的TypeError:无法读取未定义的属性“HYBRID”这里有一个模块模式可能会有所帮助 模块 要点如下: 用法 要使用上述模块并利用promise与google.maps解析的事实,请执行以下操作:
define([ 'app/lib/google-maps-loader' ], function(GoogleMapsLoader){
GoogleMapsLoader.done(function(GoogleMaps){
// your google maps code here!
var geocoder = new GoogleMaps.Geocoder();
}).fail(function(){
console.error("ERROR: Google maps library failed to load");
});
});
或者,正常情况下只需引用google.maps
对象即可
define([ 'app/lib/google-maps-loader' ], function(GoogleMapsLoader){
GoogleMapsLoader.done(function(){
// your google maps code here!
var geocoder = new google.maps.Geocoder();
}).fail(function(){
console.error("ERROR: Google maps library failed to load");
});
});
我写了一篇博客文章,解释了这个问题,以及为什么我更喜欢上面的方法而不是异步插件,它可能有一些用处:
define([ 'app/lib/google-maps-loader' ], function(GoogleMapsLoader){
GoogleMapsLoader.done(function(){
// your google maps code here!
var geocoder = new google.maps.Geocoder();
}).fail(function(){
console.error("ERROR: Google maps library failed to load");
});
});