【发布时间】:2016-01-21 14:38:11
【问题描述】:
我刚开始使用 RequireJS。我尝试了一个简单的代码,但一种方法有效,另一种无效。
文件夹“script”有“main.js”、“module.js”、“require.js”
<script data-main="script/main.js" src="script/require.js"></script>
在 main.js 中
requirejs( ['module'], function( mod ) {
mod.sayHello();
} );
在module.js中:
define( {
name : "value",
sayHello : function() {
alert( "Hello" );
},
sayBye : function() {
alert( "Bye" );
}
} );
我希望 baseUrl 是这里提到的“脚本”:
http://requirejs.org/docs/api.html#jsfiles
baseUrl 通常设置为与用于为页面加载的顶级脚本的 data-main 属性中的脚本相同的目录。
所以,我以为不会有问题,但是 mod.sayHello() 和 sayBye() 和 console.log( mod.name ) = undefined 都没有。
我尝试了console.log( mod ),它打印出如下内容:
Object {id: "_@r6", uri: "script/_@r6.js", exports: Object}
当我使用 ["script/module.js"] 而不是 ["module"] 时,console.log( mod ) 打印如下:
Object {name: "value"}
name: "value"
sayBye: ()
sayHello: ()
__proto__: Object
和 mod.sayHello()、mod.sayBye()、mod.name 都可以工作。
在main.js开头包含以下内容是一样的:
requirejs.config( {
baseUrl: "script"
} );
我做错了什么...请帮忙。
【问题讨论】:
标签: requirejs