我正在嘗試Angular 2的http GET來檢索HackerNews上的頂級文章列表,之後我將在嵌套的observable中檢索它們各自的細節。Angular 2中的嵌套Observable
我試圖循環顯示HTML中的數據時遇到此錯誤。
無法找到一個不同的支持對象「的翻譯:」
而且,我猜測應該有更好的方式來做到這一點,任何指針?
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>
但爲什麼不是一個好的做法,以嵌套的呢?我有一個問題,因爲我嵌套到http.get返回兩個可觀察的,我想它有像承諾(解決第一次調用,然後做第二次),但我得到一些未定義的參數,如我在另一個範圍。 – mautrok
我真的不認爲嵌套可觀察的xhr調用是不好的,但不好的是嵌套訂閱(訂閱另一個可觀察訂閱內的觀察值)。你必須使用'flatMap','concatMap'等操作符,並且只需一次訂閱它。 – bertrandg