Ho un componente che chiama un servizio per recuperare i dati da un endpoint RESTful. Questo servizio deve essere dotato di una funzione di callback da eseguire dopo aver recuperato tali dati."Componente" del componente Angular2 non è definito quando si esegue la funzione di richiamata
Il problema è quando si tenta di utilizzare la funzione di richiamata per aggiungere i dati ai dati esistenti nella variabile di un componente, ottengo un EXCEPTION: TypeError: Cannot read property 'messages' of undefined
. Perché è this
indefinito? Versione
dattiloscritto: Versione 1.8.10
Controller cod:
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
})
}
}
Quale versione di TypeScript stai usando? (Puoi verificarlo con 'tsc -v') – rinukkusu
Eccezione perché forEach. Usa invece For-of. –