Программная сортировка и разбиение на страницы в Angular PrimeNG

В моем проекте angular 5 у меня есть таблица PrimeNG, и я хочу загрузить параметры разбивки на страницы из URL-адреса, например: http://.... tickets?first=10&sortField=exitDate&sortOrder=1

Проблема в том, что когда я обновляю страницу, я не вижу правильный sortIcon и правильный paginator.

В component.ts onInit я загружаю все параметры из URL-адреса в виде массива:

this.route.queryParams.subscribe((params: Params) => {
    for (const param in params) {
        filters.push({ property: param, value: params[param] })
       }
     this.preloadFilterFields(filters)
    })

И затем я помещаю параметры в событие

  preloadFilterFields(filters: Filter[]) {
    for (const filter of filters) {
      if (filter.property === 'first') {
        this.event.first = filter.value;
      } else if (filter.property === 'sortField') {
        this.event.sortField = filter.value;
      } else if (filter.property === 'sortOrder') {
        this.event.sortOrder = filter.value;
      }
    }
  }

Это table.html

<p-table [value]="ticketList" [lazy]="true" (onLazyLoad)="loadModelData($event)" [paginator]="true" 
[totalRecords]="totalElements" 
[rows]="10" [responsive]="true" 
[loading]="loader" dataKey="createdDate" [sortField]="event.sortField"
[sortOrder]="event.sortOrder">

Событие инициализируется так, и при первой загрузке таблицы я вижу правильное разбиение на страницы и сортировку:

event: LazyLoadEvent = { sortOrder: -1, sortField: 'createdDate' };

Но когда я меняю нумерацию страниц, например event.sortOrder, и пытаюсь обновить страницу, я вижу правильное событие, но не вижу правильного сортировщика/пагинатора.

============================ОБНОВЛЕНИЕ================== ============ https://stackblitz.com/edit/angular-4qz1ye?file=app%2Fapp.component.ts Мне нужно изменить порядок этой таблицы с параметром из кода программно (не щелкая в таблице) Возможно?


person Alessandro Celeghin    schedule 04.04.2018    source источник
comment
См. stackoverflow.com/questions/45594195/   -  person Phil Huhn    schedule 31.07.2018
comment
Я знаю, что это старо, но с помощью каких-либо изменений вы нашли ответ и все еще помните его? Все, что у нас есть, это ссылка на другой поток stackoverflow, который находится в совершенно другой ситуации и имеет принятый ответ, который вообще не отвечает на этот вопрос.   -  person kivikall    schedule 25.02.2021