сортировка материала не работает на некоторых столбцах - PullRequest
0 голосов
/ 16 апреля 2020

Я реализую sortModule для angular таблицы материалов, но по какой-то причине он отлично работает для всех столбцов, кроме одного. Когда я пытаюсь выполнить сортировку, он возвращает таблицу в исходное состояние, но не сортирует.

html код для таблицы соответствия:

<mat-table [dataSource]="demandesData" matSort matSortActive="dateCreation" matSortDirection="desc" >

столбцы, которые работают:

 <ng-container matColumnDef="typeDemande" >
        <mat-header-cell *matHeaderCellDef mat-sort-header >
          Type demande 
        </mat-header-cell>
        <mat-cell *matCellDef="let element">
           {{ element.typeDemande }} 
        </mat-cell>

 </ng-container>
<ng-container matColumnDef="dateCreation">
        <mat-header-cell *matHeaderCellDef mat-sort-header> date création </mat-header-cell>
        <mat-cell *matCellDef="let element">
           {{ convertDate(element.dateCreation) }} 
        </mat-cell>
</ng-container>

сортировка по этому столбцу не работает:

<ng-container matColumnDef="nom">
        <mat-header-cell *matHeaderCellDef  mat-sort-header> Nom du collaborateur</mat-header-cell>
        <mat-cell *matCellDef="let element">
           {{ element.user_ajout.nom }} 
        </mat-cell>
</ng-container>

данные в таблице: enter image description here

1 Ответ

1 голос
/ 16 апреля 2020

Сортируемые столбцы - это простые свойства, которые являются прямыми дочерними элементами строки данных: dateCreation и typeDemand. Они также указаны в соответствующем атрибуте matColumnDef. Средний столбец является свойством внутри объекта user_ajout и не соответствует атрибуту matColumnDef. Такие «глубокие» значения не сортируются компаратором по умолчанию, а требуют своего собственного компаратора сортировки. Это называется sortingDataAccessor.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...