Таблица угловых данных сортировки работает только на 1 столбце? - PullRequest
0 голосов
/ 12 декабря 2018

Сортировка работает по идентификатору столбца, но не работает по второму столбцу, почему так?

<mat-table #detailsTable #detailsSort="matSort" [dataSource]="details" matSort>

<ng-container matColumnDef="id">
  <mat-header-cell *matHeaderCellDef mat-sort-header> Id </mat-header-cell>
  <mat-cell *matCellDef="let detail"> {{detail.id}} </mat-cell>
</ng-container>

<ng-container matColumnDef="invoiceCurrencyNetValue">
  <mat-header-cell *matHeaderCellDef mat-sort-header> Net value </mat-header-cell>
  <mat-cell *matCellDef="let detail"> {{detail.attributes.invoiceCurrencyNetValue}} </mat-cell>
</ng-container>

<mat-header-row *matHeaderRowDef="this.detailsColumns; sticky: true"></mat-header-row>
    <mat-row *matRowDef="let row; columns: this.detailsColumns;" matRipple class="element-row"></mat-row>
  </mat-table>

И вот как я устанавливаю данные и сортирую в .ts файле:

details = new MatTableDataSource(details.data);
details.sort = this.detailsSort;

И это объявление столбцов:

detailsColumns = [
    'id', 'invoiceCurrencyNetValue'
];

1 Ответ

0 голосов
/ 12 декабря 2018

Скорее всего, потому что ваш attributes является объектом, и сортировка ожидает фактическое значение.

например, detail.id может быть отсортирован по значению id, но detail.attributes.invoiceCurrencyNetValue не может быть отсортирован, так как это объект, а не фактическое значение.

Вы можете начать отсюда: Угловой материал 2 DataTable Сортировка с вложенными объектами

В качестве справки вы можете расширить функциональность сортировки, используя "sortingDataAccessor"

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