【发布时间】:2020-08-27 18:07:38
【问题描述】:
我在 Angular 中显示一个网格时遇到了一个奇怪的问题,该网格有 3 个静态列,接下来的列可以是任何动态的。
例如 - 我来自后端的数据看起来像 -
{
"CONNECTOR": "D00425B",
"PIN": "A03",
"DESCRIPTION": "DME Source",
"EFFECTIVITY - VA305": "1",
"EFFECTIVITY - VA504": "0"
},
{
"CONNECTOR": "D00425B",
"PIN": "B03",
"DESCRIPTION": "G/S Source",
"EFFECTIVITY - VA305": "0",
"EFFECTIVITY - VA504": "1"
},
我希望我的 Angular 网格看起来像
Connector Pin Description Effectivity-VA305 Effectivity-VA504
D00425B A03 DME Source 1 0
D00425B B03 G/S Source 0 1
前三列(连接器、引脚、描述)将始终存在,但其他两列可以变化,可以是 2、3、4 或 n 列。
例如,如果我的数据是 -
{
"CONNECTOR": "D00425B",
"PIN": "A03",
"DESCRIPTION": "DME Source",
"EFFECTIVITY - VA305": "1",
"EFFECTIVITY - VA504": "0"
"EFFECTIVITY - VA385": "1",
},
{
"CONNECTOR": "D00425B",
"PIN": "B03",
"DESCRIPTION": "G/S Source",
"EFFECTIVITY - VA305": "0",
"EFFECTIVITY - VA504": "1",
"EFFECTIVITY - VA385": "1",
},
那么我的网格应该改变为 -
Connector Pin Description Effectivity-VA305 Effectivity-VA504 EFFECTIVITY -VA385
D00425B A03 DME Source 1 0 1
D00425B B03 G/S Source 0 1 1
我目前正在获取 MatTable 的数据源,例如 -
<mat-table id="hexCodeMatTable" class="paddingTable" [ngStyle]="{ 'width.px': innerWidth }" [dataSource]="gridDataSource" matSort style="overflow: auto;">
列名称为 -
<mat-header-row class="headerHeight" *matHeaderRowDef="columnsToDisplay" ></mat-header-row>
<mat-row *matRowDef="let row; columns: columnsToDisplay"></mat-row>
无法实现动态列名,请帮忙
【问题讨论】:
-
如果你改变变量
columnsToDisplaymat-table 不会改变? -这是你唯一需要的- -
@Eliseo - 但是 columnsToDisplay 值会根据用户的输入而改变,这将是动态的。这是我的查询,如何实现
-
您希望用户如何更改列显示?我使用复选框给出了答案,但我不知道您的要求
标签: javascript html angular typescript