3

我有一个相对简单的问题,结果却比我想象的更难解决。我基本上是在寻找使用可观察值过滤 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 。

关于可能导致这种情况的任何线索?

4

0 回答 0