2016-06-28 5 views
5

Ich lerne angle2 und Typoskript und frage mich, warum ich nicht auf Eigenschaftswerte des Objekts in meiner Vorlage zugreifen kann.Angular2 Typescript, wie Objekteigenschaften in Vorlage angezeigt werden

Meine Komponente:

export class Farm{ 

    data:JSON; 
    id: any; 

    constructor(private nextService: NextService, navParams: NavParams){ 
     this.id = navParams.get("param1"); 

    } 

    getFarmDetails(){ 

     this.data = this.nextService.fetchData(this.id) 
     console.log(this.data) 
    } 
} 

wo console.log (this.data) me Object {id: 1, name: "Leanne Graham", username: "Bret", email: "[email protected]", address: Object…}

In meiner Vorlage

Ich habe gibt
<div> 
    {{data}} 
</div> 

, die auf meinem Bildschirm ausgibt als [Objekt Objekt]

Wie kann ich stattdessen Eigenschaften wie E-Mail oder Benutzername ausgeben?

UPDATE: Wenn ich {{}} data.email mag ich folgende Fehlermeldung erhalten:

enter image description here

Antwort

26

Sie können diese Eigenschaften zugreifen, wie Sie es in Javascript.

Zum Beispiel:

{{data.email}} 

Wenn die Daten abgerufen werden asynchron können Sie den Operator elvis verwenden ?., um die Fehler zu vermeiden, während Daten null sind.

{{data?.email}} 
+1

versuchte ich das, aber es wirft Fehler: ORIGINAL AUSNAHME: Typeerror: kann Eigenschaft ‚E-Mail‘ undefinierter – Nitish

+3

{{Daten .email}} funktionierte perfekt lesen! Ich danke dir sehr! – Nitish

+0

Danke! Du hast mir gerade noch eine Stunde Zeit für Debugging und Facepalming gespart. Der "elvis" -Operator wird auch der "sichere Navigationsoperator" genannt. Manchmal ist das – sofly

Verwandte Themen