gpt4 book ai didi

Angular Material 表 : Sorting not working

转载 作者:太空狗 更新时间:2023-10-29 18:03:45 28 4
gpt4 key购买 nike

在我的 Angular 应用程序(使用 Angular Material)中,我有几个表。

奇怪的是,在一种情况下,排序有效,而在另一种情况下,则无效。

这是有效的表格:

<table mat-table [dataSource]="dataSource" matSort>

<ng-container matColumnDef="id">
<th mat-header-cell *matHeaderCellDef> ID </th>
<td mat-cell *matCellDef="let row"> {{row.id}} </td>
</ng-container>

<ng-container matColumnDef="firstName">
<th mat-header-cell *matHeaderCellDef mat-sort-header> First Name </th>
<td mat-cell *matCellDef="let row"> {{row.firstName}} </td>
</ng-container>

<ng-container matColumnDef="lastName">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Last Name </th>
<td mat-cell *matCellDef="let row"> {{row.lastName}} </td>
</ng-container>

<ng-container matColumnDef="viewProfile">
<th mat-header-cell *matHeaderCellDef class="viewProfile"> Profile </th>
<td mat-cell *matCellDef="let row" class="viewProfile">
<button mat-icon-button (click)="openProfile(row.id)">
<mat-icon aria-label="icon-button with a page-view icon">pageview</mat-icon>
</button>
</td>
</ng-container>

<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>

</table>

...这是不起作用的表:

<table class="table2" mat-table [dataSource]="dataSource2" matSort>

<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Project </th>
<td mat-cell *matCellDef="let row"> {{row.name}} </td>
</ng-container>
<ng-container matColumnDef="role">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Role </th>
<td mat-cell *matCellDef="let row"> {{row.role}} </td>
</ng-container>
<ng-container matColumnDef="beginning">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Beginning </th>
<td mat-cell *matCellDef="let row"> {{row.beginning | date : "mediumDate"}} </td>
</ng-container>
<ng-container matColumnDef="end">
<th mat-header-cell *matHeaderCellDef mat-sort-header> End </th>
<td mat-cell *matCellDef="let row"> {{row.end | date : "mediumDate"}} </td>
</ng-container>

<tr mat-header-row *matHeaderRowDef="displayedColumns2"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns2;"></tr>
</table>

如您所见,在这两种情况下我都使用“matSort”(在 table 标记中)和“mat-sort-header "(对于应该可排序的列)。

此外,在每种情况下,我都会在 component.ts 文件中执行相同的导入操作:

import { MatTableDataSource, MatPaginator, MatSort, MatDialog } from '@angular/material';

我只是不明白为什么排序在第一种情况下有效,而在第二种情况下却无效。有人知道这里发生了什么吗?

最佳答案

确保displayedColumns数组中的column_name

displayedColumns = ['column_name'];

html 容器,

ng-container matColumnDef="column_name"

和数据源对象的键,

dataSource = [ {"column_name": "value"} ];

完美匹配。

这也可能是一组特定数据不起作用而其他数据起作用的原因。

关于 Angular Material 表 : Sorting not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51956555/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com