2016-11-19 64 views
-1

我嘗試將2個Firebase調用映射到一起。我正在使用AngularFire2和RXJS。 我正在用的ID列表和我想要得到的對象與IDRXJS和Angularfire地圖不起作用

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; 
    }); 
}); 

這並不需要額外火力調用工作。該調用有效,但無法轉換爲JSON。如果我替換它爲一個字符串,它的作品。 我從YouTube視頻從角 https://youtu.be/ngnSOTSS8Q8?t=1h11m48s

這個例子但是,當我用這個例子我無法將它轉換成JSON

lijsten | async | json 

轉換圓形結構,以JSON在JSON.stringify()

有沒有更好的方法來映射?


更新

我發現當我使用訂閱,它的工作原理

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

但儘管如此,這是最好的辦法嗎?

回答

0

您可以使用async管道兩次,一個用於list可觀察,另一個用於可觀察的object

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