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
da das Array leer beginnt, müssen Sie es mit einem '* ngIf =" res.length umgeben> 0 " – Ploppy
Versuchen Sie' res [0] ?. title' Dies ist ein asynchrones Problem, verwenden Sie also einen sicheren Navigationsoperator :) – Alex
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