angular - 如何根据可观察值设置primeng表的默认排序顺序
问题描述
我有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">
任何帮助将不胜感激,谢谢。
解决方案
sortField
是当前选定的过滤列,将在任何值更改时更新。
您可以将其设置为简单字符串
<p-table [value]="offers" sortField="totalPrice">...<p-table>
在数据绑定的情况下,您需要使用curly brackets []
<p-table [value]="offers" [sortField]="totalPriceValue">...<p-table>
对于你来说 isRelventPrice$ 这会起作用
<p-table
[value]="offers" [sortField]="(isRelventPrice$ | async)? 'totalPrice' : 'unitPrice'">
....
</p-table>
检查这个演示