【发布时间】:2017-12-11 20:01:25
【问题描述】:
我有 2 个 Firebase 列表:
- publicItems 包含 4 个项目
- privateItems 包含 2 个项目
我想从这两个列表中提取并将它们组合成一个 observable。
为此,我正在尝试使用 merge:
import { Observable } from 'rxjs/Rx';
import 'rxjs/add/operator/merge';
items: Observable<any[]>;
this.items = this.af.list('/privateItems').merge(this.af.list('/publicItems'));
然后在视图中:
<ul>
<li *ngFor="let item of items | async">item.title</li>
</ul>
但是,这具有仅显示 4 个公共项目的效果。
merge 是不是合适的工具?我将如何将 2 个 FirebaseListObservables 合并为 1 个可以一起显示的 Observable?
【问题讨论】:
-
正确。你可以试试
Observable.merge( ___ , ____ )。也可以试试this.af.list('/privateItems').do(console.log).merge(this.af.list('/publicItems')).do(console.log) -
使用 Observable.merge( __, __) 具有相同的效果。似乎无论哪个可观察到的都是第二个“覆盖”另一个。例如,如果我用 publicItems 交换对 privateItems 的调用,那么它只显示 2 个私有项目。 @Skeptor
-
你有没有尝试第二个语句
标签: angular typescript firebase-realtime-database rxjs ionic3