2016-07-17 1 views
1

ich den Code bin der Umsetzung unten , aber es zeigt undefined und this wurde hier der Map-Objektkontext, und es ist nicht in der Lage, loggedIn Wert zuweisen.diesem Zusammenhang von öffentlichem Eigentum ist innerhalb Map Betreiber Undefiniert in Typoskript

Ich denke, der Lambda-Ausdruck sollte in der Lage sein, auf diesen Kontext des Klassenobjekts zuzugreifen. Gibt es etwas, was ich hier falsch gemacht habe?

+0

Ich denke, es ist zu tun, wie dieses Lambda folgert. Wenn Sie dies verwenden lexikalisch leitet diese Form umschließende Funktion und in diesem Fall ist es Kartenfunktion (1.) –

+0

Können Sie sich transpiled Ja-Code. Das wird ein korrekteres Bild ergeben. Fühlen Sie sich frei, das auch hier hinzuzufügen –

+0

danke @ArpitAgarwal für die Antwort sehen Sie bitte meinen aktualisierten Code mit transpiled. Es ist mit dem erwarteten Code für den Kontext in JS. Wenn ich eine andere Variable für diesen Kontext außerhalb der Funktion verwenden, funktioniert es sogar in Typescript, aber ich denke, es ist nicht in TS – Sandeep

Antwort

0

Ich denke, dass der Lambda-Ausdruck in der Lage sein sollte, auf diesen Kontext des Klassenobjekts zuzugreifen. Habe ich hier etwas falsch gemacht?

Das Klassenmitglied muss wohl auch einen Pfeil haben. Statt:

isValidLogin():Observable<boolean> { 

schreiben:

isValidLogin =():Observable<boolean> => { 

Mehr

https://basarat.gitbooks.io/typescript/content/docs/arrow-functions.html

+0

Dank es funktioniert, war mir nicht bewusst, die Verwendung von Pfeil in der Klasse Mitglied, netter Artikel – Sandeep

Verwandte Themen