Mam składnik, który wywołuje usługę pobierania danych z punktu końcowego RESTful. Tej usłudze należy nadać funkcję zwrotną, która zostanie wykonana po pobraniu wspomnianych danych."To" składnika Angular2 jest niezdefiniowane podczas wykonywania funkcji wywołania zwrotnego.
Problem polega na tym, że próbuję użyć funkcji oddzwaniania w celu dołączenia danych do istniejących danych w zmiennej komponentu, otrzymuję numer EXCEPTION: TypeError: Cannot read property 'messages' of undefined
. Dlaczego undefined jest this
? Wersja
maszynopis: Wersja 1.8.10
kod Kontroler:
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
})
}
}
Którą wersję TypeScript używasz? (Możesz to sprawdzić za pomocą 'tsc -v') – rinukkusu
Wyjątek, ponieważ forEach. Zamiast tego użyj For-of. –