2017-04-18 11 views
0

Unten ist mein Code und was ich versuche zu tun ist, abonnieren Sie die Daten, die ich zurückgeben, nachdem die Sendefunktion ausgelöst wird. Jetzt, nach dem Abonnieren, ordne ich die Datenrückgabe von meiner API dem this.Data zu, um an meine ngFor weiterzuleiten, um die meine Daten anzuzeigen. Aber ich bekomme den Fehler Error trying to diff '[object Object]'. Könnte es sein, dass ich die Anzeigeeigenschaft in den Daten nicht erreiche oder die Daten nicht im richtigen Format (Objekt) akzeptiere?Iterieren durch Objekt (Daten) - Angular

Data: DataLink[] = []; 


     Send(){ 

       this.http.forward(this.info) 
       .subscribe(data => { 

        this.Data = data; 


         console.log(data); 
       }) } 

    <div *ngFor="let msg of Data"> 

     {{msg.display}} 


**response** 
data: Array 
    0: Object 
     display: "How are you?" 

Antwort

3

einfach Schleife auf den direkt Tasten. Sie sollten in Ordnung sein

Send(){ 

       this.http.forward(this.info) 
       .subscribe(data => { 

       Object.keys(data).forEach(key => { 

        this.Data = data[key]; 

         console.log(data); 
       }) } 

    <div *ngFor="let msg of Data"> 

     {{msg.display}} 
</div> 
1

Der Fehler, den Sie sehen, geschieht, weil data ein Objekt ist und ngFor erfordert ein Array.

werfen Sie einen Blick auf diese Antwort: Error trying to diff '[object Object]'

Auch sehen dies für Winkel http Service doc/Beispiele https://angular.io/docs/ts/latest/guide/server-communication.html

+0

bin ich Zugriff auf die Display-Antwort zu Recht, bitte? –

+0

Whta ist "vorwärts"? wichtiger ist, was ist 'this.http'? –

+0

Forward ist eine Funktion in meinem Service.ts –