使用Angular2 Observable值

时间:2016-09-08 13:19:32

标签: angular typescript firebase reactive-programming angularfire2

我有一个相对简单的问题,结果比我想象的更难解决。我基本上希望使用可观察值

过滤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变量过滤locations数组。

如果我跑

this.locations.map(result => {
console.log(result) }

我按预期获得完整对象,包括like参数设置为true或false。

但是,如果我跑

this.locations.map(result => {
console.log(result.like) }

我恢复未定义,尽管当我在console.log中获得完整结果时这个值正确显示。

有关导致此问题的任何线索?

0 个答案:

没有答案