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)));
}
}