2017-04-03 4 views
2

Nach der erfolgreichen Implementierung des Gapi-Clients in meiner Angular 2-Anwendung, stoße ich jetzt auf ein Problem, bei dem mein http-Objekt nicht definiert ist und ich nicht sicher bin.TypeError: Kann Eigenschaft 'http' von undefiniertem Winkel 2 nicht lesen

Unten ist der Code: Konstruktor (privat http: Http) {}

initGmailApi() { 

gapi.auth2.getAuthInstance().grantOfflineAccess().then(function(resp) { 
    console.log(resp); 
    const auth_code = resp.code; 

    const body = {'AuthCode': auth_code}; 
    const headers = new Headers(); 
    headers.append('Content-Type', 'application/json'); 
    this.http.post('http://localhost:8080/startgmail', body, headers).subscribe(
    (Response) => { 
     console.log(Response); 
    } 
    ); 
}); 
} 

Im Grunde, was ich tue, ist eine Genehmigung vom Benutzer auffordert, sein Google Mail-Konto zuzugreifen und wenn ich eine Antwort, die ich möchte einige empfangene Daten an meinen Backend-Server weitergeben.

Wenn ich this.http außerhalb der "then" -Klausel verwende, dann funktioniert die HTTP-Methode gut, aber dies schafft ein weiteres Problem, bei dem der "auth_code" -Wert nicht erkannt wird.

Was fehlt mir hier?

+0

Sie haben eine Funktion: 'Funktion (bzw.)' die Ihre ändert ' das ist das, was Sie von der Klasse erwarten. Verwenden Sie die Pfeilfunktion. – Maxime

Antwort

5

Wenn Sie this innerhalb der Callback verweisen, verwenden Sie nicht function() {}

Benutze stattdessen Funktionen arrow:

then((resp) => { 
Verwandte Themen