对于我的Angular项目,我想在组合框中显示EmpID值,并按姓氏排序。
这是一个html片段,我正在尝试实现管道。
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({ name: 'orderByLast' })
export class OrderByLast implements PipeTransform {
transform(array: Array<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;
}
}
这是我的orderByLast.pipe.ts:
export class EmpInfo {
EmpKey: number;
EmpID: string;
Firstname: string;
LastName: string;
EmpStat: string;
StartDate: Date;
AdjustedStart: Date;
Anniversary: number;
PTOYear: number;
STDLTD: number;
Uncharged: number;
ETOEarned: number;
ETORequests: number;
ETORemaining: number;
PTOBase: number;
PTOCarry: number;
PTOBorrowed: number;
PTOBalance: number;
PTORequests: number;
PTORemaining: number;
}
这是我的emp-info.ts数组:
min-height: 100%
答案 0 :(得分:1)
您需要实现transform
功能:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({ name: 'orderByLast' })
export class OrderByLast implements PipeTransform {
transform() { // add your object as a parameter to transform()
//write your code to do the sort
}
}
查看&#39;自定义管道&#39;部分:https://angular.io/docs/ts/latest/guide/pipes.html(请注意,@torazaburo指出它不建议使用管道进行排序,这也在附录中的链接中说明:没有FilterPipe或OrderByPipe&# 39;部分。)
答案 1 :(得分:1)
请参阅此示例。我几个月前在自己的应用程序中实现了这个orderBy
管道。
https://stackoverflow.com/a/39650432/5556177