Angular2-Komponente "this" ist beim Ausführen der Rückruffunktion undefiniert.

Ich habe eine Komponente, die einen Service aufruft, um Daten von einem RESTful-Endpunkt abzurufen. Diesem Dienst muss eine Rückruffunktion zugewiesen werden, die nach dem Abrufen der Daten ausgeführt wird.

Das Problem ist, wenn ich versuche, die Rückruffunktion zu verwenden, um die Daten an die vorhandenen Daten in der Variablen einer Komponente anzuhängen, wird ein @ angezeigEXCEPTION: TypeError: Cannot read property 'messages' of undefined. Warum istthis nicht definiert

TypeScript-Version: Version 1.8.10

Controller-Code:

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
        })
    }
}

Antworten auf die Frage(8)

Ihre Antwort auf die Frage