我正在使用Typescript和Angular2。我有一个过滤结果列表的管道。现在,我想按字母顺序对该列表进行排序等。我该怎么做?
答案 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。
希望它可以帮到你, 亨利