Angular 未应用用于键值排序的角度*NGF

Angular 未应用用于键值排序的角度*NGF,angular,typescript,keyvaluepair,Angular,Typescript,Keyvaluepair,我正在尝试为一个游戏创建一个实时记分板,我正在为我的应用程序提供一个日志文件 我正在使用 public players = {}; // <string, Player> 所以我的观点是这样的 <tr *ngFor="let player of scoreboardService.players | keyvalue: sortByKills"> <td>{{ player.value.name }}</

我正在尝试为一个游戏创建一个实时记分板,我正在为我的应用程序提供一个日志文件

我正在使用

public players = {}; // <string, Player>
所以我的观点是这样的

      <tr *ngFor="let player of scoreboardService.players | keyvalue: sortByKills">
        <td>{{ player.value.name }}</td>
        <td>{{ player.value.kills }}</td>
        <td>{{ player.value.deaths }}</td>
      </tr>

{{player.value.name}
{{player.value.kills}
{{player.value.death}
这里我将keyvalue与比较函数sortByKills()一起使用

sortByKills=(p1:KeyValue,p2:KeyValue):number=>{
返回p2.value.kills-p1.value.kills;
}
表更新正确,但未应用排序。有什么建议吗?

看看我在自定义管道中添加的示例

import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
  name: 'keyvalue'
})

export class CustomPipe implements PipeTransform {
  transform(row: any[],sortByKills:number=-1): any {
      // make your filters here 
      return row.sort((a, b) => sortByKills*(parseFloat(a.kills) - parseFloat(b.kills)));

  }
}

这是你的问题吗?视图结构是一个管道。然后,您需要创建自定义管道我使用的是对象而不是数组:-(我可以使用,但如果可能的话,我希望避免这种情况)。@pc_coder:但正在使用比较函数。这不应该工作吗?
  sortByKills = (p1: KeyValue<string, Player>, p2: KeyValue<string, Player>): number => {
    return p2.value.kills - p1.value.kills;
  }
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
  name: 'keyvalue'
})

export class CustomPipe implements PipeTransform {
  transform(row: any[],sortByKills:number=-1): any {
      // make your filters here 
      return row.sort((a, b) => sortByKills*(parseFloat(a.kills) - parseFloat(b.kills)));

  }
}