0

我一直在几个项目中使用requirejs,今天是我第一次遇到这个问题,不知道如何解决它。我正在使用 requirejs 和 tyepscript,我真的不知道这里出了什么问题。有人可以看看吗?

这是我的 main.ts:

///<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

任何的想法?

4

1 回答 1

1

你是通过 script 标签还是通过 require.js 加载 puremvc?我不认为你想两者都做。

这边:

require(
    [
        'puremvc',
        'sim/TestClass'
    ],
    function (TestClass ) {
        var test = new TestClass();
        test.logMsg("WHO AM I");
    }
);

回调函数以您列出它们的相同顺序获取模块。所以'TestClass'参数是从'puremvc'模块提供的值。你可能想要function(puremvc, TestClass)在这里。

于 2013-10-24T16:25:05.287 回答