如何对作为Observable保存的列表进行排序(RxJS,Angular 2)

时间:2016-03-10 21:17:43

标签: angular rxjs observable

我是Angular2和RxJS的新手。

我已经设置了一个http服务,基本上给我一个'Observable'。

我将Observable保存在名为items的变量中    items : Observable

我的模板(现在)只显示内容

<ul>
    <li *ngFor="#item in items | async>{{item.name}} | {{item.group}}</li>
</ul>

这很有效。

我现在处于我想要对项目进行排序的位置 - 基于点击处理程序的名称或组。但是,我认为无法对Observable中保存的数组进行排序。

感谢任何帮助。

感谢。

1 个答案:

答案 0 :(得分:11)

我假设您有另一个代表您想要排序的当前属性的observable:

const sortProperty$ = /* an observable of string values */

您可以在此流和combineLatest流上执行items$(因此我们会获得最新的排序和列表值)。然后,我们可以使用此信息创建一个新流,它将发出我们的排序列表:

const sortedItems$ = Rx.Observable.combineLatest(sortProperty$, items$, (prop, items) => {
    return _.orderBy(items, prop);
});