我有一个可以观察到的对象列表,我试图迭代这些对象,以便将列表对象属性与局部变量进行比较。
我可以在模板中遍历列表中的对象,但是无法在组件逻辑中看到如何循环。
如何在模板之外执行此操作?
到目前为止,这是我接触到的最近的迭代器。
constructor(af: AngularFire) {
this.competitors = af.database.list('/competitors');
}
this.competitors.forEach(competitor) {
console.log(competitor);
}很抱歉,如果这个问题构造得很糟糕,我对Angular2和Firebase还很陌生。
发布于 2017-02-10 11:36:54
你在处理的是可观察的而不是普通的收藏品。这意味着您必须使用可观察的原语,在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)
)
});发布于 2016-07-25 05:15:29
this.competitors.forEach(competitor) {
var competitorValue = competitor.val();
console.log(competitorValue);
competitorValue.forEach(sub){
console.log(sub.val());
}
}这将允许您对所有分支进行解析。
发布于 2018-11-16 07:36:10
订阅:next 中的迭代:
this.transactions.subscribe({
next(competitors) {
competitors.forEach(competitor => {
console.log(competitor);
});
},
error(err) { console.log('errors already caught... will not run'); }
})https://stackoverflow.com/questions/38551813
复制相似问题