Значок сортировки PrimeNG TurboTable не отображается при включенной сортировке по умолчанию - PullRequest
0 голосов
/ 24 мая 2019

Когда сортировка по умолчанию включена в PrimeNG, значок сортировки TurboTable не виден при начальной загрузке, заголовок столбца имеет стилизацию, поскольку он используется, и данные сортируются правильно.Значок сортировки появляется, когда я вручную нажимаю на заголовок для повторной сортировки.

screenshot

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'}
    ]

Есть ли способ показать значок сортировки в отсортированном по умолчанию столбце?

1 Ответ

1 голос
/ 27 мая 2019

Если вы привяжете свойство sortOrder следующим образом ...

[sortOrder]="1"

... значение будет считаться числом, а не строкой. Иногда трудно понять, будет ли строка приведена обратно в число в коде PrimeNG.

Я рекомендую использовать [brackets] для всех привязок свойств шаблона Angular. В противном случае тип будет считаться строкой, что может привести к ошибкам.

Это особенно проблематично с логическими значениями, поэтому я всегда рекомендую этот синтаксис:

[doSomething]="false"

И если строка действительно нужна, этот синтаксис поможет:

[myProp]="'myString'"
...