我有一个相对简单的问题,结果却比我想象的更难解决。我基本上是在寻找使用可观察值过滤 Angular 2 中的 Firebase 列表
这是我的初始代码,它按预期工作,并使用来自
locations: Card[] = [];
ngOnInit() {
this.cardService.getLocations()
.map(locations => {
return locations.map(location => {
this.af.database.object(`/likes/${user}/${location}`).subscribe(like => {
location.like = like.like;
});
return location;
})
})
.subscribe(result => {
this.locations = result;
});
}
这工作正常。现在,我想根据 location.like 变量过滤位置数组。
如果我跑
this.locations.map(result => {
console.log(result) }
我按预期得到了完整的对象,包括设置为 true 或 false 的 like 参数。
但是,如果我运行
this.locations.map(result => {
console.log(result.like) }
尽管当我 console.log 完整结果时该值正确显示,但我返回 undefined 。
关于可能导致这种情况的任何线索?