2017-06-25 7 views
1

Ich folgte dem Angular-Tutorial locker und versuchte, Daten von einem Webserver zu empfangen, was gut funktioniert. Aber in der aufrufenden Komponente erhalte ich keine Daten. Ich habe meinen Code überprüft und mit dem Tutorial verglichen, und aus meiner Sicht sollte alles in Ordnung sein. Ich erhalte keine Fehler, kann die Daten in der Konsole sehen, aber ich werde nicht in der Komponente angezeigt. Kann mir jemand erklären, warum ich die Daten nicht erhalte?Komponente empfängt keine Daten vom Dienst

Dies ist die Service Funktion:

getProjects(): Promise<Project[]> { 

    return this.http.get(this.apiURL) 
     .toPromise() 
     .then(response => { 
      console.log(response.json()); 
      response.json() as Project[] 
     }) 
     .catch(this.handleError); 
} 

und das ist meine Komponente:

export class FrontpageComponent implements OnInit { 

    projects: Project[] = []; 

    constructor (private projectService: ProjectService) {} 

    ngOnInit(): void { 

     this.projectService.getProjects() 
      .then(projects => { 
       this.projects = projects; 

       console.log(projects); 
     }); 
    } 
} 

derzeit Mein Projekt Modell ist einfach:

export class Project { 
    dmResponse: Object; 
} 
+0

hinzufügen 'return' d.h' return response.json() als Projekt [] ' – Alex

Antwort

1

Bei Ihrem Service, sollten Sie den Wert zurück:

 .then(response => { 
     console.log(response.json()); 
     return response.json() as Project[]; 
    }) 

Diese implizite Rendite auf dem Pfeil-Funktionen funktioniert nur, wenn die Anweisung nicht geschweiften Klammern hat. das heißt:

 .then(response => response.json() as Project[]) 
+0

Vielen Dank, das nicht wusste. – seshiro

Verwandte Themen