3
所以我有兩個表。其中之一是我的用戶存儲塊 另一個存儲這些塊的數據。angularfire2 rxjs加入兩個表的動態更新的observables
我想這樣在我的組件我根據數據ID
- user
- blocks
- block1
- blockSize
- blockOptions
- dataID
- ...
- data
- dataId1
- stuff ...
- ...
用下面的代碼我得到得到他們的數據塊的列表,這些正確結合我的塊和數據,但該數據節點仍然FirebaseObervable。所以我必須在我的愚蠢組件中使用異步。我所問的是如何正確地組合這些,因此我只需要使用異步管道並將數據推送到子組件。雖然不失去動態變化。
return this.db.list(`/user/${this.userId}/blocks`).switchMap((blocks:Block[]) => {
let blockData$ = blocks.map(block => {
return this.db.object(`/data/${block.blockOptions.dataID}`)
});
return Observable.combineLatest(blockData$,blocks, (bData,block) => {
block.data = bData;
return blocks;
});
})
模板例如提前
//what I want to happen
*ngFor="let block of blocks | async">
<dumb-component [blockData] = "block.data"></dumb-component>
//what I have to do now
*ngFor="let block of blocks | async">
<dumb-component [blockData] = "block.data | async"></dumb-component>
謝謝,我覺得真的關閉任何輕推在正確的方向,將不勝感激
Cartant非常感謝。週末我放棄了對它的抨擊。因爲我的大腦很爛。 –
@ShaneMoore,你可以upvote或接受答案,如果它幫助 –
你是對的,這個是幾乎完全一樣[this one](https://stackoverflow.com/a/45529139/2545680) –