#angular #primeng #primeng-datatable
#angular #primeng #primeng-datatable
Вопрос:
У меня есть p-table
с сортируемыми столбцами. Однако изначально я хочу, чтобы таблица была отсортирована по определенному столбцу, который я использую sortFiled
для этого. Но этот столбец неизвестен до времени выполнения. Вот фрагмент таблицы:
<p-table [value]="offers" sortField="totalPrice">
<ng-template pTemplate="header">
<tr>
<th pSortableColumn="shopName">Name
<p-sortIcon field="shopName"></p-sortIcon>
</th>
<th pSortableColumn="unitPrice">Unit price
<p-sortIcon field="unitPrice"></p-sortIcon>
</th>
<th pSortableColumn="totalPrice">Total price
<p-sortIcon field="totalPrice"></p-sortIcon>
</th>
</tr>
</ng-template>
<ng-template pTemplate="body"> .... </ng-template>
</p-table>
Мне нужно указать столбец в зависимости от значения наблюдаемого, что-то вроде следующего, но это, похоже, не работает.
<p-table [value]="offers" sortField="(isRelventPrice$ | async)? totalPrice : unitPrice">
Любая помощь будет оценена, спасибо.
Комментарии:
1. Для SortField требуется строка, и похоже, что вы передаете переменные. Будет ли это работать, если вы сделаете TotalPrice и UnitPrice в виде строк?
<p-table [value]="offers" sortField="(isRelventPrice$ | async)? 'totalPrice' : 'unitPrice'">
2. это решит вашу проблему
[sortField]="(isRelventPrice$ | async)? 'totalPrice' : 'unitPrice'"
🤔🤔
Ответ №1:
sortField
является текущим выбранным фильтруемым столбцом и будет обновляться в случае любого изменения значения.
вы можете установить его как простую строку
<p-table [value]="offers" sortField="totalPrice">...<p-table>
в случае привязки данных вам необходимо использовать curly brackets []
<p-table [value]="offers" [sortField]="totalPriceValue">...<p-table>
и для вас case isRelventPrice $ это сработает
<p-table
[value]="offers" [sortField]="(isRelventPrice$ | async)? 'totalPrice' : 'unitPrice'">
....
</p-table>
проверьте эту демонстрацию 🚀