在Typescript中,如何从作为事件处理程序调用的同一个类中的另一个方法调用类方法

时间:2016-12-01 08:22:36

标签: jquery ajax class events typescript

我有以下TypeScript代码:

class MyClass {
    constructor() {
         $("#MyButton").on("click", this.MyCallback);
         this.MyMethod();        
    }

    MyCallback = () => {
        $.ajax("http://MyAjaxUrl")
        .done(function() {                
            this.MyMethod();
        });
    }

    MyMethod = () => {
        // Do some work
    }    
}

我遇到的问题是当它到达JQuery ajax done函数时,它告诉我" MyMethod不是函数"。调试了Javascript我知道这是因为"这个"不是对MyClass的引用,但是我无法弄清楚如何在这个执行点获得对类的引用。

1 个答案:

答案 0 :(得分:2)

可以通过将代码更改为:

来解决
$.ajax("http://MyAjaxUrl")
.done(() => {
    this.MyMethod();
});