Próbuję http GET od Angular 2, aby pobrać listę najlepszych artykułów na temat HackerNews, a następnie pobiorę ich odpowiednie szczegóły w zagnieżdżonej obserwowalnej.Zagnieżdżone obserwowalne w Angular 2
Występuje ten błąd podczas próby zapętlenia i wyświetlenia danych w moim kodzie HTML.
nie może znaleźć się różnić wspieranie przedmiotu '[object Object]'
Również jestem zgadywania nie powinno być lepszym sposobem, aby to zrobić, każdy wskaźnik?
getTopPost() {
this.http.get('https://hacker-news.firebaseio.com/v0/topstories.json')
.map(res => res.json())
.subscribe(
data => {
data.map(function(postId){
let storyUrl = "https://hacker-news.firebaseio.com/v0/item/"+ postId +".json";
that.http.get(storyUrl)
.map(res => res.json())
.subscribe(data => that.hnData = data,
err => that.logError(err),
() => console.log(that.hnData));
});
},
err => this.logError(err);
);
}
HTML
<ion-item *ngFor="#item of hnData">
{{item.title}}
</ion-item>
ale dlaczego nie jest to dobra praktyka, aby je zagnieżdżać? Mam problem, ponieważ zagnieżdżam się do http.get, który zwraca dwie obserwowalne, próbuję mieć coś podobnego do obietnicy (najpierw rozwiązać drugie połączenie), ale dostaję niezdefiniowane parametry, jakbym był w innym zakresie . – mautrok
Naprawdę nie sądzę, że źle jest zagnieżdżać obserwowalne wywołania xhr, ale złe jest to, aby zagnieździć subskrypcje (zasubskrybuj to, co można zaobserwować w innej obserwowalnej subskrypcji). Musisz używać operatorów takich jak 'flatMap',' concatMap', .. i subskrybować go tylko jeden raz. – bertrandg