我正在尝试创建一个模块,可以异步加载(AMD)并通过HTML脚本标记加载。我将这个构造添加到我的模块中(我从jQuery源代码中获取它):
if ( typeof define === "function" && define.amd ) {
define( "mymodule", ['googlemaps'], function(google) {
return myModule;
});
}
myModule = function() {
// here code uses "google"
}我的模块依赖于Google,所以如果我通过HTML脚本标签加载模块,它就能工作。但是,如果我的模块是异步加载的,"google“只能在”定义“块中使用。是否有任何方法将此变量传递到全局范围(对于我的模块文件)?
发布于 2014-08-14 07:07:46
(function(global, factory) {
if (typeof define === 'function' && define.amd) { // requirejs
return define(['googlemaps'], factory);
} else if (typeof exports === 'object') { // nodejs
return module.exports = factory(require('googlemaps'));
} else { // html
return global['Odysseus'] = factory(global['googlemaps']);
}
})(this, function(GoogleAPI) {
...
return myModule;
});发布于 2014-08-14 07:02:51
您可以声明全局变量GoogleAPI并从定义到它附加值。
var GoogleAPI;
define( "mymodule", ['googlemaps'], function(google) {
GoogleAPI = google;
return myModule;
});https://stackoverflow.com/questions/25301810
复制相似问题