如何迭代firebase2列表可观察?
问题描述:
我有一个列表可观察到的对象,我试图迭代比较列表对象属性本地变量。如何迭代firebase2列表可观察?
我可以遍历模板中列表中的对象,但无法看到如何在组件逻辑中。
我该如何在模板之外做到这一点?
这是我到目前为止最接近工作迭代器的地方。
constructor(af: AngularFire) {
this.competitors = af.database.list('/competitors');
}
this.competitors.forEach(competitor) {
console.log(competitor);
}
对不起,如果这是一个问题,结构不好,我还是Angular2和Firebase的新手。
答
您正在使用Observable而不是普通的集合。这意味着你必须使用Observable原语,并且通过this.competitors
的简单循环将不起作用。
这本:
this.competitors.subscribe(competitor => console.log(competitor));
顺便说一下,有一个命名约定来命名,并在最后一个$观测量,所以它看起来方式如下:
this.competitors$ = af.database.list('/competitors');
和:
this.competitors$.subscribe(competitor => console.log(competitor));
这将记录整个竞争对手阵列。如果您想遍历元素,请执行以下操作:
this.competitors.subscribe(
competitors => {
competitors.map(competitor =>
console.log(competitor)
)
});
答
this.competitors.forEach(competitor) {
var competitorValue = competitor.val();
console.log(competitorValue);
competitorValue.forEach(sub){
console.log(sub.val());
}
}
这会让你解析所有的分支。
我会试试这个,并在您确认后将其标记为答案。谢谢。 – dibs