javascript - 在 Angular 材质表中为每个数据源元素渲染多个动态表行
问题描述
如何在下面的 Angular Material Table 中将type
和value
列定义简化为一个ng-container
,以便第一行仍然呈现info.type
并且第二行仍然呈现info.value
?
角材料表:
<table mat-table [dataSource]="dataSource" multiTemplateDataRows>
<!-- table definition -->
<ng-container matColumnDef="placeholder">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef></td>
<ng-container>
<ng-container matColumnDef="itemHeader">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef="let index = dataIndex" colspan="2">Item {{index + 1}}</td>
<ng-container>
<ng-container matColumnDef="typeLabel">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef>Type</td>
<ng-container>
<ng-container matColumnDef="valueLabel">
<th mat-header-cell *matHeaderCellDef></th>
<td mat-cell *matCellDef>Value</td>
<ng-container>
<ng-container matColumnDef="type">
<th mat-header-cell *matHeaderCellDef>Current Value</th>
<td mat-cell *matCellDef="let item">{{item.type}}</td>
<ng-container>
<ng-container matColumnDef="value">
<th mat-header-cell *matHeaderCellDef>Current Value</th>
<td mat-cell *matCellDef="let item">{{item.value}}</td>
<ng-container>
<!-- table markup -->
<tr mat-header-row *matHeaderRowDef="['placeholder', 'value']"></tr>
<tr mat-row *matRowDef="let item; columns: ['itemHeader']"></tr>
<tr mat-row *matRowDef="let item; columns: ['typeLabel', 'type']"></tr>
<tr mat-row *matRowDef="let item; columns: ['valueLabel', 'value']"></tr>
</table>
dataSource
:_
let dataSource: any[] = [
{
type: 'A',
value: '123'
},
{
type: 'B',
value: '456'
}
]
仅供参考,表格(正确)呈现如下:
_________________________
Current Value
_________________________
Item 1
Type A
Value 123
_________________________
Item 2
Type B
Value 456
_________________________
解决方案
推荐阅读
- mysql - 用奇怪的名字重命名表
- javascript - JS 异步加载 Google Maps API 时出错
- c# - 方法 'IndexOf' 没有重载需要 1 个参数。在 .NET 框架下工作,但不在 .NET Core 下工作
- javascript - 设置正确的正则表达式
- html - Internet Explorer 11 屏幕阅读器辅助功能问题
- java - 在缓冲区阅读器 Java 中添加行计数器
- python - 如何使用新的键和值创建字典并将值添加到一个键
- microsoft-graph-api - 图形邮件 API:504 网关超时错误
- groovy - 获取从节点可到达的顶点(在可变深度)
- regex - 使用字段分隔符在 bash 中替换 Perl 字符串 - 跳过标题行