Tôi đang cố gắng sử dụng http của GET Angular 2 để lấy danh sách các bài viết hàng đầu về HackerNews và sau đó tôi sẽ lấy lại các chi tiết tương ứng của chúng trong lồng nhau có thể quan sát được.Lồng nhau quan sát được trong Angular 2
Tôi gặp lỗi này khi cố gắng lặp và hiển thị dữ liệu trong HTML của mình.
Không thể tìm thấy một khác nhau hỗ trợ đối tượng '[đối tượng Object]
Ngoài ra, tôi đoán có phải là một cách tốt hơn để làm điều này, bất kỳ con trỏ?
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>
nhưng tại sao không phải là một thực hành tốt để lồng họ? Tôi có một vấn đề bởi vì tôi đang làm tổ để http.get trả lại hai quan sát được, tôi đang cố gắng để có một cái gì đó như lời hứa (giải quyết cuộc gọi đầu tiên sau đó làm thứ hai) nhưng tôi nhận được một số tham số không xác định như tôi đang ở trong phạm vi khác . – mautrok
Tôi không thực sự nghĩ rằng nó xấu để tổ chức các cuộc gọi xhr quan sát nhưng những gì là xấu là để làm tổ đăng ký (đăng ký một quan sát bên trong một thuê bao quan sát được). Bạn phải sử dụng toán tử như 'flatMap',' concatMap', .. và chỉ đăng ký một lần. – bertrandg