define['somemodules',function(module1){
//code
}]
我想获得像
这样的javascript代码require['somemodules',function(module1){
//code
}]
这样代码就会在加载js文件后立即运行。
我的tsc配置
{
experimentalDecorators: true,
emitDecoratorMetadata: true,
target: "ES5",
module: "amd",
emitError: false,
outFile: filename
}
和我的代码
import {BaseViewModel} from '../tinyts/Core';
import {AdminService} from '../services/admin';
export class AdminModel extends BaseViewModel {
RegisterEvents() {
}
OnValidateError() {
}
OnLoad() {
var adminService = new AdminService();
var data = {
Pagesize: 10,
Page: 1,
}
adminService.GetData(data, this);
}
LoadData(data) {
console.log(data);
}
}
更新
在我的问题上,我在浏览器中使用已编译的javascript代码。所以我需要amd modules.now我编译的js文件是这样的:
define("module1",["require", "exports"],function(require,exports){
//module1 code
}
define("module2",["require", "exports","module1"],function(require,exports,m1){
//module2 code
}
define("module3",["require", "exports","module2"],function(require,exports,m2){
//module3 code
//and i want the module3 code will be executed once this file is loaded.
var Module3 = function(){
};
exports.module3 = Module3;
}
现在我必须编写另一个这样的脚本来执行上面的代码
require(["module3"],function(m3){
var mInstance = new m3.module3();
});
我有refrenced requirejs
答案 0 :(得分:1)
在tsconfig.json
更改此行:
module: "amd"
到
module: "commonjs"
require()
函数是Node.js主要使用的CommonJS规范的一部分,因此您必须告诉TS编译器编译到该规范。