Thursday, 22 November 2018

OrderByPipe in angular


@NgModule({
declarations: [
OrderByPipe
]
})

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
name: 'orderBy'
})
export class OrderByPipe implements PipeTransform {

transform(value: Array<any>, field: any): any {

if (value == null) {
return null;
}
let sortingtype: number = parseInt(field[0] + 1);
var crntfield = field.substring(1).split('.');

function compare(a, b) {
switch (crntfield.length) {
case 1: a = a[crntfield[0]]; b = b[crntfield[0]]; break;
case 2: a = a[crntfield[0]][crntfield[1]];
b = b[crntfield[0]][crntfield[1]]; break;
case 3: a = a[crntfield[0]][crntfield[1]][crntfield[2]];
b = b[crntfield[0]][crntfield[1]][crntfield[2]]; break;
case 4: a = a[crntfield[0]][crntfield[1]][crntfield[2]][crntfield[3]];
b = b[crntfield[0]][crntfield[1]][crntfield[2]][crntfield[3]]; break;
case 5: a = a[crntfield[0]][crntfield[1]][crntfield[2]][crntfield[3]][crntfield[4]]; b = b[crntfield[0]][crntfield[1]][crntfield[2]][crntfield[3]][crntfield[4]]; break;
}
if (a < b)
return sortingtype * 1;
if (a > b)
return sortingtype * -1;
return 0;
}
return value.sort(compare);
}

}

No comments:

Post a Comment

IIS deployment support details

  Node JS - IIS deployment support details node: http://go.microsoft.com/?linkid=9784334 IISNode: https://github.com/azure/iisnode/releases/...