我用角2列出了一个项目列表。我想用custom fliterpipe对列表进行排序。我们可以用lastname对列表进行排序吗?

<ul *ngFor="let user of userList | lastname" class="userlist">
  <li>
    <span>{{user.name}}</span>
    <span>{{user.lastname}}</span>
    <span>{{user.age}}</span>
  </li>
</ul>


但这给了我错误
请提出一种解决方法
https://stackblitz.com/edit/angular-fdxser?file=src%2Fapp%2Fapp.component.html

最佳答案

这是管道的外观(通过链接)

lastname.pipe.ts:

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

@Pipe({
  name: 'lastname'
})
export class LastnamePipe implements PipeTransform {

  transform(values: any[]): any[] {
    return values.sort((a, b) => a.lastname.localeCompare(b.lastname));
  }
}


如果需要,可以使用其他方法在返回语句中添加.reverse();或执行b.lastname.localeCompare(a.lastname)

关于javascript - 如何在 Angular 排序姓氏的列表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50713712/

10-16 06:20