我正在尝试在我的应用中使用RequireJS。我在cdnjs中包含了requirejs脚本,如下所示:
<script src="//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
在我的页面上我有一个按钮,我为它注册了一个事件:
$('#btnSpeedTest').on('click', function (e) {
require([baseUrl + 'Content/js/tools/speedtest.js'], function (speedTestModule) {
alert(speedTestModule);
});
});
如果我和Fidler一起观看 - 我看到点击按钮speedtest.js后会加载。
speedtest.js包含以下内容:
define('speedTestModule', function () {
function SpeedTest(settings, startNow) {
// basic initialization
}
var fn = SpeedTest.prototype;
fn.startRequest = function (download, twoRequests) {
// logic
}
return SpeedTest;
});
alert(speedTestModule);
命令返回“undefined”。我看到了一个关于RequireJS的教程,在那个教程中,所有内容都在同一个目录中,以及包含模块名称的文件(由于我是从CDN加载而不是我的情况)。
我甚至试图返回一个简单的字符串,但它没有用。我错过了什么?
由于
答案 0 :(得分:1)
请勿使用已命名的define
。而不是:
define('speedTestModule', function () {
这样做:
define(function () {
让RequireJS命名你的模块。您通常希望在优化模块时让r.js
为模块添加名称。在某些情况下,有必要在define
电话中自行使用名称,但这些情况确实很特殊。