Angular - 如何按姓氏管道排序

时间:2017-06-05 14:37:55

标签: angular angular2-pipe

对于我的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%

2 个答案:

答案 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