Angular2 - 如何最好地对管道列表进行排序?

时间:2016-01-27 10:58:02

标签: angular typescript

我正在使用Typescript和Angular2。我有一个过滤结果列表的管道。现在,我想按字母顺序对该列表进行排序等。我该怎么做?

1 个答案:

答案 0 :(得分:5)

您可以为此实现一个利用sort数组方法的自定义管道:

import { Pipe } from "angular2/core";

@Pipe({
  name: "sort"
})
export class ArraySortPipe {
  transform(array: Array<string>, args: string): Array<string> {
    array.sort((a: any, b: any) => {
      if (a < b) {
        return -1;
      } else if (a > b) {
        return 1;
      } else {
        return 0;
      }
    });
    return array;
  }
}

然后通过利用管道链接来使用此管道:

<li *ngFor="list | filter | sort"> (...) </li>

它是带有字符串值的数组的简单示例,但您可以进行一些高级排序处理(基于对象数组的对象属性,基于排序参数,...)。

以下是这方面的一个问题:https://plnkr.co/edit/WbzqDDOqN1oAhvqMkQRQ?p=preview

希望它可以帮到你, 亨利