javascript - Angular *ngFor 指令在 View 中显示数据

标签 javascript arrays angular ngfor

使用 angular primeng API 并遵循文档

API [
      id: 1, name:"Test 1", currency: "Euro", status: "Active", date: "4th of April 2008" },
      id: 2, name:"Test 2", currency: "Dollar", status: "Active", date: "12nd of May 2005" }
   ]

 ngOnInit {
   this.col = [
     {field: 'name', header: 'Name'},
     {field: 'currency',  header: 'Currency'},
     {field: 'status', header: 'Status'},
     {field: 'date', header: 'Date'}
   ]
}

我可以使用 *ngFor 成功渲染数据
Template.html
<tr>
  <td *ngFor="let col of column">
      {{rowData[col.field]}}
  </td>
<tr>

现在我需要对每个数据值进行修改,例如:

*名称使用大写管道
*货币使用货币管道
*日期使用日期管
<td *ngFor="let col of columne">
   <ng-container *ngIf="col.field === 'date'"> {{rowData[col.field] | date: 'dd/MMM/yyyy'}}</ng-container>
   <ng-container *ngIf="col.field === 'currency'"> {{rowData[col.field] | currency:'CAD':'code'}}</ng-container>
   <ng-container *ngIf="col.field === 'name'"> {{rowData[col.field] | uppercase}}</ng-container>
</td>

如何修改正在渲染的数据并为每个值进行相应的修改

最佳答案

您可以通过使用 ngSwitch 进行边际改进反而:

  <ng-container *ngFor="let col of columne">
    <td [ngSwitch]="col.field">
       <ng-container *ngSwitchCase="'date'"> {{rowData[col.field] | date: 'dd/MMM/yyyy'}}</ng-container>
       <ng-container *ngSwitchCase="'currency'"> {{rowData[col.field] | currency:'CAD':'code'}}</ng-container>
       <ng-container *ngSwitchCase="'name'"> {{rowData[col.field] | uppercase}}</ng-container>
       <ng-container *ngSwitchDefault>{{rowData[col.field]}}</ng-container
    </td>
  </ng-container>

但我建议使用一些提供表格的组件库,如果你需要一个像这样的动态列的表格。由于您的其他选择基本上涉及滚动您自己的可重用表组件,这可能是矫枉过正。

关于javascript - Angular *ngFor 指令在 View 中显示数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62032185/

相关文章:

javascript - 如何在CxJS中制作功能组件?

javascript - 手动安装 Node js 与使用包管理器安装

arrays - 将 Perl 数组放入哈希中

php - 简单的 html dom - 如何将 dt/dd 元素获取到数组?

Angular 从 1 开始 ngFor 索引

javascript - 使用 Javascript 获取页面中的顶部节点

Javascript 正则表达式否定给出了不正确的结果

javascript - 选择数组中的特定元素作为下拉列表

html - 如何将删除操作移至 ng2 智能表的最后一列?

angular - Spring boot - 预检响应没有 HTTP ok 状态