Angular 如何为ngFor中的每个元素显示不同的图标?

Angular 如何为ngFor中的每个元素显示不同的图标?,angular,ngfor,Angular,Ngfor,我使用ngFor遍历设备列表,然后在表中显示设备。我想在与元素对应的设备名称旁边显示一个图标。例如,如果元素为“mobile phone”,则将有一个移动图标,下一个元素camera将有一个camera图标 <tbody> <tr *ngFor="let item of deviceTypes"> <td>{{ item.nameEn }}</td> <td style="text-align:center">

我使用ngFor遍历设备列表,然后在表中显示设备。我想在与元素对应的设备名称旁边显示一个图标。例如,如果元素为“mobile phone”,则将有一个移动图标,下一个元素camera将有一个camera图标

<tbody>
  <tr *ngFor="let item of deviceTypes"> 
    <td>{{ item.nameEn }}</td>
    <td style="text-align:center">
    <button class="btn btn-outline-primary" title="View" 
    (click)="viewDevice(item._id, item.nameEn)">
        <i class="fa fa-eye clickable"></i>&nbsp;{{
        'btn_elements.view' | translate }}</button>
    </td>
  </tr> 
</tbody>

{{item.nameEn}
{{
'btn_elements.view'| translate}}

您可以在项目中使用图标名称的属性:

item.icon='camera'

然后设置图标类:

或:

在函数内部执行映射:

假设对象中有与相应图标类直接相关的内容。
icons = new Map([[1, 'camera'], [2, 'phone']);

getIcon(deviceId: string): string {
   return this.icons.get(deviceId);
}