Angular 有没有办法在ng中搜索
我有两个数组文件和currentlyRunning。 假设文件位于索引0中,其进度在Angular 有没有办法在ng中搜索,angular,Angular,我有两个数组文件和currentlyRunning。 假设文件位于索引0中,其进度在currentlyRunning[1]内。进度即索引1 我正在运行ngFor以显示所有文件。td中的ngIf是否可以获取正确的进度,因为索引可能不同,但文件id是唯一的 <tr *ngFor="let files of File; let index=i;"> <td> {{file.name}} </td> <td> {{file.id
currentlyRunning[1]内。进度即索引1
我正在运行ngFor
以显示所有文件。td中的ngIf
是否可以获取正确的进度,因为索引可能不同,但文件id是唯一的
<tr *ngFor="let files of File; let index=i;">
<td>
{{file.name}}
</td>
<td>
{{file.id}}
</td>
<td *ngIf="file.id === currentlyRunning[i].id">
{{currentlyRunning.progress}}
</td>
<tr>
{{file.name}
{{file.id}
{{currentlyRunning.progress}
您可以在组件类中创建函数并在ngIf指令语句中使用它您可以在组件类中创建函数并在ngIf指令语句中使用它否则,我建议您应该将数据相互映射
ngOnChages() {
this.mapedData = currentlyRunning.reduce((map, file) => {
map[file.id] = file;
return map;
}, {} as { [id: number]: iFile });
}
然后,您可以在模板中使用简单的查找:
<tr *ngFor="let file of files; let index=i;">
<td>
{{file.name}}
</td>
<td>
{{file.id}}
</td>
<td *ngIf="mapedData[file.id] as currentlyRunning">
{{currentlyRunning.progress}}
</td>
<tr>
{{file.name}
{{file.id}
{{currentlyRunning.progress}
通过这种方式,它只是O(n)复杂度,您有一种很好的方法来处理所有这些数据我建议,否则,您应该将数据相互映射
ngOnChages() {
this.mapedData = currentlyRunning.reduce((map, file) => {
map[file.id] = file;
return map;
}, {} as { [id: number]: iFile });
}
然后,您可以在模板中使用简单的查找:
<tr *ngFor="let file of files; let index=i;">
<td>
{{file.name}}
</td>
<td>
{{file.id}}
</td>
<td *ngIf="mapedData[file.id] as currentlyRunning">
{{currentlyRunning.progress}}
</td>
<tr>
{{file.name}
{{file.id}
{{currentlyRunning.progress}
这样,它只是O(n)复杂度,您有一个很好的方法来处理所有这些问题最好创建一个字典/索引器,并以这种方式检索它。这将更具可读性,也更具性能。另请参见,查找将使用currentlyRunning
。最好创建一个字典/索引器,并以这种方式检索它。这将更具可读性,也更具性能。另请参见currentlyRunning
将是查找。