2017-05-03 2 views
1

Ich vermisse etwas auf Interpolation denke ich. i verwenden http.get für meine DienstdatencodeAngular 4 Get Json von Http und Display zu Dom

post.service zu erhalten:

getPosts() {return this._http.get(this._Url + 'events').map((_response: Response) => { 
    const data = _response.json() 
    return _response.json(); 
}); 

auf meine Komponente laufen i den folgenden Code, um die Antwort auf die res Array Komponentencode weitergeben müssen:

getdata(){this._postService.getPosts() 
    .subscribe(
    posts => { 
    posts.forEach(posts => { 
     this.res.push(
     new event(
      posts.field_event_title[0].value, 
      posts.field_event_price[0].value, 
      "test loc" 
     ) 
    ) 

    }); 


    } 
    , 
    (error) => console.log(error, "error from observable") 
); 
    console.log(this.res, "res after subs") 
} 

Html-Code:

<div class="row" *ngFor="let post of res"> 
    Title: {{post.title}} <br> 
    Price: {{post.price}} <br> 
    Location:{{post.location}} 
</div> 

Mein Problem ist das mit * ngFor bekomme ich meine Daten angezeigt. aber ich möchte nur 1 post ex lesen. res [0] .title. Wenn ich in html {{res [0] .title}} verwende, bekomme ich den Fehler "kann Eigenschaft nicht lesen" title "von undefined. Irgendwelche Hilfe dazu!? Am Ende, was ich will, ist in der Lage sein, das Array zu verwenden res Daten in dem dom

+0

da das Array leer beginnt, müssen Sie es mit einem '* ngIf =" res.length umgeben> 0 " – Ploppy

+0

Versuchen Sie' res [0] ?. title' Dies ist ein asynchrones Problem, verwenden Sie also einen sicheren Navigationsoperator :) – Alex

+1

Mögliches Duplikat von [Angular 2 Vorlagen-Tags sagen Objekt ist undefiniert] (http://stackoverflow.com/questions/35073267/angular-2-template-tags-say-object-is-undefined) – Alex

Antwort

0

der sichere Navigation Betreiber war mein Problem anzuzeigen, wie AJT_82. Jungs Dank gesagt!