Как получить доступ к члену класса из функции в классе метода в typescript

У меня есть этот код typescript:

    module MyPage {

    export class MyVm {

        ToDo : string;

        Load() {
            //can access todo here by using this:
            this.ToDo = "test";

            $.get("GetUrl", function (servertodos) {
                //but how do I get to Todo here??
                this.ToDo(servertodos); //WRONG ToDo..
            });
        }
    }
}

Вопрос в том, как мне получить доступ к полю участника todo в обратном вызове $.get?

Ответы

Ответ 1

TypeScript также поддерживает функцию стрелки, которая сохраняет лексическую область видимости. Функции Arrow приводят к аналогичному коду к примеру Jakub, но более аккуратны, поскольку вам не нужно создавать переменную и самостоятельно настраивать использование:

Вот пример использования функции стрелки:

$.get("GetUrl", (todos) => {
    this.ToDo(todos);
});

Ответ 2

Точно так же вы делаете это в javascript

export class MyVm {
    ToDo : string;

    Load() {
        //can access todo here by using this:
        this.ToDo = "test";
        var me = this;

        $.get("GetUrl", function (todos) {
            //but how do I get to Todo here??
            me.ToDo(todos); //WRONG ToDo..
        });
    }
}

Ответ 3

Фентон прав.

Но вы также можете сделать это:

 mycallback(todos, self) { self.todo(todos)); }
 $.get('url', mycallback(todos, this));