如何禁用 PrimeNG table 中选定列的排序?

How to disable sorting for selected columns in PrimeNG table?

我正在尝试禁用根据 PrimeNG 中的布尔值对选定列进行排序 table。 下面是我的列数组

cols = [
    { field: 'name', header: 'Name', sort: true },
    { field: 'age', header: 'Age', sort: true },
    { field: 'gender', header: 'Gender', sort: false },
    { field: 'status', header: 'Status', sort: false }
  ];

某些列的 sort 值为 false,我需要禁用这些列的排序。

<p-table [columns]="cols" [value]="persons" [resizableColumns]="true" sortField="name" sortMode="single">
    <ng-template pTemplate="header" let-columns>
        <tr>
            <th pResizableColumn  *ngFor="let col of columns" [pSortableColumn]="col.field" [pSortableColumnDisabled]="col.field === 'name' || col.field === 'age'">
                <div class="tb-heading">{{col.header}}</div>
                <div class="sort-icons-container">
                </div>
            </th>
        </tr>
    </ng-template>
    <ng-template pTemplate="body" let-rowData let-columns="columns">
        <tr [pSelectableRow]="rowData">
            <td *ngFor="let col of columns">
                {{rowData[col.field]}}  
            </td>
        </tr>
    </ng-template>
</p-table> 

我可以使用上面的代码通过使用 pSortableColumnDisabled 来禁用列,即 nameage,但我不想像上面那样对列名称进行硬编码,因为这些列将由父组件动态传递。

是否有任何方法可以根据各自的 sort 布尔值禁用列?

在网上花了一些时间后找到了上述问题的解决方案https://embed.plnkr.co/egBhS1DJhY2Ud1ByfGBp/

更改了硬编码条件

[pSortableColumn]="col.field" [pSortableColumnDisabled]="col.field === 'name' || col.field === 'age'"

[pSortableColumnDisabled]="!col.sort ? true : false"