【问题标题】:PrimeNG TurboTable sort icon not visible with default sorting enabledPrimeNG TurboTable 排序图标在启用默认排序的情况下不可见
【发布时间】:2019-10-10 20:18:15
【问题描述】:

当 PrimeNG 的 TurboTable 排序图标在初始加载时不可见时启用默认排序时,列标题会在使用时设置样式并且数据会正确排序。当我手动单击标题以再次排序时,会出现排序图标。

html:

<p-table [columns]="columns" [value]="users" sortField="name" sortOrder="1">
  <ng-template pTemplate="header" let-columns>
    <tr>
      <th *ngFor="let col of columns" [pSortableColumn]="col.field">
        {{col.header}}
        <p-sortIcon [field]="col.field"></p-sortIcon>
      </th>
    </tr>
  </ng-template>
  <ng-template pTemplate="body" let-user let-columns="columns">
    // body ...
  </ng-template>
</p-table>

组件:

    this.columns = [
      {field: 'name', header: 'Name'},
      {field: 'email', header: 'email'}
    ]

有没有办法在默认排序列上显示排序图标?

【问题讨论】:

  • 您可以尝试像这样绑定 sortOrder ...[sortOrder]="1",因此可以将值视为数字而不是字符串。有时很难知道字符串是否会在 PrimeNG 代码中被强制转换为数字。
  • 或者尝试添加 sortMode 属性绑定。
  • @DaleHarris [sortOrder]="1" 工作,谢谢!
  • 我不确定,所以我留下了评论而不是答案。我会继续发布它作为答案,以防其他人需要信息。

标签: angular primeng primeng-turbotable


【解决方案1】:

如果你像这样绑定 sortOrder 属性...

[sortOrder]="1"

...该值将被视为数字而不是字符串。有时很难知道字符串是否会被强制转换为 PrimeNG 代码中的数字。

我建议对所有 Angular 模板属性绑定使用 [brackets]。否则,该类型将被视为字符串,这可能会导致错误。

这对于布尔值尤其有问题,所以我总是推荐这种语法:

[doSomething]="false"

如果真的需要一个字符串,这个语法就可以解决问题:

[myProp]="'myString'"

【讨论】:

    猜你喜欢
    • 2018-07-03
    • 2017-10-14
    • 2015-05-15
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-19
    • 2022-07-29
    相关资源
    最近更新 更多