我正在使用requireJS
并尝试定义Google地图模块。
我将此代码添加到HTML代码段的末尾:
$(document).ready(function() {
console.log("ready");
define(['async!http://maps.google.com/maps/api/js?v=3&sensor=false'],
function (gmap) {
console.log(gmap);
});
});
“就绪”控制台正在记录,但define
呼叫未触发。如果我用require
调用替换它,则正在加载文件,但我的gmap未定义。
问题:
为什么我的define
电话没有触发?
答案 0 :(得分:1)
这是因为一旦定义了模块,就需要它。将代码更改为这样的代码可以起作用:
// gmap.js (for example)
define(['async!http://maps.google.com/maps/api/js?v=3&sensor=false'], function(gmap) {
// Do some stuff
return gmap;
});
// main.js
require(['jquery', 'path/to/gmap'], function($, gmap) {
$(function() {
console.log(gmap);
});
});
有些注意事项:
require
jQuery作为模块(除非您没有使用它)。$()
是$(document).ready()