*ngFor 到 Angular HTML 的小问题
Little Problem with *ngFor to Angular HTML
我对 *ngFor 有疑问。我认为索引在我的选项卡对象 "joueurClassement" 中是 ko。这不是一个好的数字序列。如下图所示。这种情况有效,因为 indexe 是 0,1,2,3,4
在我的 HTML =>
<tbody>
<tr *ngFor ="let player of joueurClassement; let i = index">
<td>{{ player.nom }}</td>
<td>{{ player.prenom }}</td>
<td>{{ player.point }}</td>
<td>{{player.victoire}}</td>
<td>{{player.defaite}}</td>
<td>{{player.nbdejeu}}</td>
</tr>
</tbody>
*ngFor Ok
但是当索引不是一个好的序列号时,不是 0,1,2,3,4 ngFor 是 KO.As 你可以看到 picture.My 对象 "joueurClassement " 不是显示在我的尖叫声中。
*ngFor Ko
我不知道为什么会出现这个错误,但是如果你只想做*ngFor,你不需要添加索引,比如:
<tbody>
<tr *ngFor ="let player of joueurClassement">
<td>{{ player.nom }}</td>
<td>{{ player.prenom }}</td>
<td>{{ player.point }}</td>
<td>{{player.victoire}}</td>
<td>{{player.defaite}}</td>
<td>{{player.nbdejeu}}</td>
</tr>
</tbody>
你不需要指定索引,*ngFor 可以像一个 Foreach
你是对的,你的问题是你得到的 稀疏数组 没有连续的索引。
这里有一个解决方案可以为您解决这个问题。使用此模板:
<table>
<tbody>
<ng-container *ngFor="let keyValuePair of joueurClassement | keyvalue; trackBy: trackKeyValuePair">
<tr *ngIf="keyValuePair.value as player">
<td>{{player.nom}}</td>
<td>{{player.prenom}}</td>
<td>{{player.point}}</td>
<td>{{player.victoire}}</td>
<td>{{player.defaite}}</td>
<td>{{player.nbdejeu}}</td>
</tr>
</ng-container>
</tbody>
</table>
出于性能原因,我添加了一个 trackBy
函数。它看起来像这样:
class MyComponent {
trackKeyValuePair(_index, keyValuePair): number {
return keyValuePair.key;
}
}
我对 *ngFor 有疑问。我认为索引在我的选项卡对象 "joueurClassement" 中是 ko。这不是一个好的数字序列。如下图所示。这种情况有效,因为 indexe 是 0,1,2,3,4
在我的 HTML =>
<tbody>
<tr *ngFor ="let player of joueurClassement; let i = index">
<td>{{ player.nom }}</td>
<td>{{ player.prenom }}</td>
<td>{{ player.point }}</td>
<td>{{player.victoire}}</td>
<td>{{player.defaite}}</td>
<td>{{player.nbdejeu}}</td>
</tr>
</tbody>
*ngFor Ok
但是当索引不是一个好的序列号时,不是 0,1,2,3,4 ngFor 是 KO.As 你可以看到 picture.My 对象 "joueurClassement " 不是显示在我的尖叫声中。 *ngFor Ko
我不知道为什么会出现这个错误,但是如果你只想做*ngFor,你不需要添加索引,比如:
<tbody>
<tr *ngFor ="let player of joueurClassement">
<td>{{ player.nom }}</td>
<td>{{ player.prenom }}</td>
<td>{{ player.point }}</td>
<td>{{player.victoire}}</td>
<td>{{player.defaite}}</td>
<td>{{player.nbdejeu}}</td>
</tr>
</tbody>
你不需要指定索引,*ngFor 可以像一个 Foreach
你是对的,你的问题是你得到的 稀疏数组 没有连续的索引。
这里有一个解决方案可以为您解决这个问题。使用此模板:
<table>
<tbody>
<ng-container *ngFor="let keyValuePair of joueurClassement | keyvalue; trackBy: trackKeyValuePair">
<tr *ngIf="keyValuePair.value as player">
<td>{{player.nom}}</td>
<td>{{player.prenom}}</td>
<td>{{player.point}}</td>
<td>{{player.victoire}}</td>
<td>{{player.defaite}}</td>
<td>{{player.nbdejeu}}</td>
</tr>
</ng-container>
</tbody>
</table>
出于性能原因,我添加了一个 trackBy
函数。它看起来像这样:
class MyComponent {
trackKeyValuePair(_index, keyValuePair): number {
return keyValuePair.key;
}
}