我需要创建一个TS变量来将外部的这个上下文放到一个函数中,这样我就可以调用它。
public that = this;
constructor() {
$('#start').click(function(){
$(this).hide();
that.createLoader();
});
}
这个JS的结果,
function SpaceInvaders() {
this.that = this;
$('#start').click(function () {
$(this).hide();
this.that.createLoader();
});
}
正如您所见,生成代码结果为this.that.cretaeLoader()
,实际上是Jquery DOM元素。
我是TS的新手,请帮助
答案 0 :(得分:4)
在that
:
constructor
constructor() {
var that = this;
$('#start').click(function(){
$(this).hide();
that.createLoader();
});
}
答案 1 :(得分:4)
替代方案是使用一些"绑定到上下文"功能
declare var $:any;
class MyClass {
createLoader(){}
constructor() {
$('#start').click((e)=>{
$(e.currentTarget).hide();
this.createLoader();
});
}
}