在HTML

时间:2018-02-28 16:33:15

标签: typescript

我是Typescript的新手,我希望能够在点击元素时运行一个方法。 我使用带有webpack的awesome-typescript-loader创建了一个项目并处理了ts文件。

我创建了一个TS类:

export class MyApp {

    myMethod(myParam: number): void {
        console.log("I'm here");
    }
}

export const myApp = new MyApp();

在我的主页中,我导入了ts文件:

import { theApp } from "./ts/myApp";

并在我的HTML中我

<div onclick="theApp.myMethod(123);"></div>

但我可以看到以下错误:

  

未捕获的ReferenceError:未定义myApp   HTMLDivElement.onclick

使用TS对象的正确方法是什么?

2 个答案:

答案 0 :(得分:0)

theApp放到window对象上:window["theApp"] = theApp;

然后它是全局可用的,您的onclick处理程序应该可以访问。

class MyApp {
    myMethod(myParam) {
        console.log("I'm here");
    }
}
window['theApp'] = new MyApp();
<div onclick="theApp.myMethod(123);">take theApp from window implicitly</div>
<div onclick="window['theApp'].myMethod(123);">take theApp from window explicitly</div>

答案 1 :(得分:0)

更新以下行

MAIN.TS

导入声明

import { myApp } from "./ts/myApp";

构造

constructor(private theApp: myApp) {}

html文件中的函数调用

<div onclick="theApp.myMethod(123);"></div>