RXJS& Angularfire映射不起作用

时间:2016-11-19 14:32:52

标签: angular firebase rxjs angularfire2

我尝试将2个Firebase呼叫映射到一起。我正在使用AngularFire2和RXJS。 我得到一个ID的列表,我想获得具有该ID的对象

const path = `/lists/${auth.$uid}`;
this.lijsten = map.call(af.database.list(path), (vals: any[]) => {
    return vals.map((m) => {
        m.shapes = af.database.object(`/lists/${m.$key}`);
        return m;
    });
});

这不适用于额外的firebase调用。调用有效,但无法转换为JSON。如果我将它替换为String,它可以工作。 我从角度来自youtube视频得到了这个例子 https://youtu.be/ngnSOTSS8Q8?t=1h11m48s

但是当我使用这个例子时,我无法将其转换为json

lijsten | async | json

给出

  

在JSON.stringify()

中将循环结构转换为JSON

有更好的地图方法吗?

更新

我发现当我使用订阅时,它可以正常工作

af.database.object(`/lists/${m.$key}`).subscribe(
      val => {    
        m.shapes = val;
      });

但是,这仍然是最好的方式吗?

1 个答案:

答案 0 :(得分:0)

您可以使用async管道两次,一个用于list可观察量,另一个用于object可观察量。

<div *ngFor="let list of lijsten | async">
  {{ list.shapes | async | json }}
</div>