Как получить доступ к члену класса из функции в классе метода в 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));