【发布时间】:2017-02-15 17:43:01
【问题描述】:
使用 Angular,我正在显示来自服务器的数据列表(数组)。列表上方有一个button bar 和dropdown,允许用户filter 列表。
我创建了 2 个Subjects 并在流中使用了combineLatest,如下所示:
this.http.get('/api')
.combineLatest(this.firstFilter$.startWith(initialValue))
.map(([data, firstFilter]) => _.filter(data, item => firstFilter === item.prop))
.combineLatest(this.secondFilter$.startWith(initialValue))
.map(([data, secondFilter]) => _.filter(data, item => secondFilter === item.prop))
虽然这可行,但在调试时我注意到在调用 secondFilter$.next() 时不会调用 firstFilter 的映射......但它仍然考虑了两个过滤器并显示正确的数据。
我想知道是否有更好的方法来处理 2 个或更多过滤器?
【问题讨论】: