Добавьте следующую трубу сортировки в ваш проект.Следующая труба является общей, вы можете изменить атрибут для сортировки, например, ex. sort.pipe.ts
import {Pipe, PipeTransform} from '@angular/core';
@Pipe({name: "sortBy"})
export class SortPipe implements PipeTransform {
transform(array: Array<any>, args: any): Array<any> {
console.log("arra", array, '-- args:', args);
if (array !== undefined) {
let keys, order;
if(typeof args == 'string'){ // use default sort criteria
keys = [args];
order = 1;
}
if(keys.length > 0){
array.sort((a: any, b: any) => {
if (a[keys[0]] < b[keys[0]]) {
return -1 * order;
} else if (a[keys[0]] > b[keys[0]]) {
return 1 * order;
} else {
return 0;
}
});
}
}
return array;
}
}
Объявить гниение трубы в pipeModule, например: pipe.module.ts
import {NgModule} from '@angular/core';
import {SortPipe} from './sort.pipe';
@NgModule({
imports: [],
declarations: [SortPipe],
exports: [SortPipe],
})
export class PipesModule {
static forRoot() {
return {
ngModule: PipesModule,
providers: [],
};
}
}
Вставьте PipeModule в app.module.ts.И HTML будет:
<ul *ngFor="let user of userList | sortBy :'lastname'" class="userlist">