У меня есть компонент, который вызывает службу для извлечения данных из конечной точки RESTful. Эта услуга должна иметь функцию обратного вызова, которая должна выполняться после извлечения указанных данных.Компонент Angular2 «это» не определен при выполнении функции обратного вызова
Проблема заключается в том, что я пытаюсь использовать функцию обратного вызова для добавления данных к существующим данным в переменной компонента, я получаю EXCEPTION: TypeError: Cannot read property 'messages' of undefined
. Почему this
не определено? версия
Машинопись: Версия 1.8.10
код контроллера:
import {Component} from '@angular/core'
import {ApiService} from '...'
@Component({
...
})
export class MainComponent {
private messages: Array<any>;
constructor(private apiService: ApiService){}
getMessages(){
this.apiService.getMessages(gotMessages);
}
gotMessages(messagesFromApi){
messagesFromApi.forEach((m) => {
this.messages.push(m) // EXCEPTION: TypeError: Cannot read property 'messages' of undefined
})
}
}
Какая версия TypeScript вы используете? (Вы можете проверить это с помощью 'tsc -v') – rinukkusu
Исключение, потому что forEach. Вместо этого используйте For-of. –