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

How to sort a list that is held as an Observable (RxJS, Angular 2)

我是 Angular2 和 RxJS 的新手。

我已经设置了一个 http 服务,对我来说本质上是 return 'Observable'。

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

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

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

这很有效。

我现在处于要对项目进行排序的位置 - 根据名称或基于点击处理程序的组。但是,我看不到对保存在 Observable 中的数组进行排序的方法。

感谢任何帮助。

谢谢。

我假设您有另一个 Observable 表示您要排序的当前 属性:

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

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

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