我一直在对几个项目使用requirejs,今天是我第一次遇到这个问题而不确定如何修复它。我正在使用requirejs和tyepscript,我无法分辨这里有什么问题。有人可以看看吗?
这是我的主要内容:
///<reference path="../lib/require/requirejs.d.ts"/>
///<reference path="TestClass.ts"/>
require.config(
{
baseUrl: 'js',
paths: {
puremvc: 'lib/puremvc/puremvc_standard_1.0_min'
}
}
);
require(
[
'puremvc',
'sim/TestClass'
],
function (TestClass ) {
var test = new TestClass();
test.logMsg("WHO AM I");
}
);
这是我的TestClass.ts
class TestClass{
constructor(){
console.log ("TestClass constructor")
}
public logMsg(msg:string){
console.log ("TestClass.log(): " + msg);
}
}
export = TestClass;
我的sim.html看起来像这个
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Simulation Tester</title>
<script src="js/lib/puremvc/puremvc_standard_1.0_min.js"></script>
<script data-main="js/sim/main.js" src="js/lib/require/require.js" ></script>
</head>
<body >
</body>
</html>
这是我的文件夹结构:
- root
- sim.html
- js
- lib
- require (containt requirejs)
- sim
- main.ts
- TestClass.ts
有什么想法吗?
答案 0 :(得分:1)
您是通过脚本标记还是通过require.js加载puremvc?我认为你不想两者兼顾。
在这里:
require(
[
'puremvc',
'sim/TestClass'
],
function (TestClass ) {
var test = new TestClass();
test.logMsg("WHO AM I");
}
);
回调函数按照列出的顺序获取模块 。因此'TestClass'参数正在从'puremvc'模块中提供值。您可能需要function(puremvc, TestClass)
来代替。