angular7 - PrimeNG 表列排序不起作用

标签 angular7 primeng-turbotable

我已经使用 PrimeNG Table 创建了一个 Angular 应用程序。我在这里查看了 PrimeNG 文档 ( https://www.primefaces.org/primeng/#/table/sort )。问题是我的表没有排序。显示排序图标,当我按下其中任何一个时,动画发生变化,但数据未排序。

这是我的 component.ts 代码

import { Component, OnDestroy, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { DownloadService } from '../services/download/download.service';
import { SelectItem, MultiSelectModule } from "primeng/primeng";

@Component({
  selector: 'app-downloads',
  templateUrl: './downloads.component.html',
  styleUrls: ['./downloads.component.css'],
  providers: [DownloadService]
})

export class DownloadsComponent implements OnInit {

  downloadData: any[] = [];
  cols: any[];
  columnOptions: SelectItem[];

  constructor(private http: HttpClient, private data: DownloadService) { }

  ngOnInit() {
    this.getData();
    setInterval(() => {
      this.getData();
    }, 5000);
  }

  getData() {
    this.data.GetDownloads().subscribe(data => {
      this.downloadData = data;
    });
  }
}

和 component.html 的代码

<p-table [value]="downloadData" [rows]="10" [paginator]="true" sortMode="multiple" [rowsPerPageOptions]="[5,10,20]" [rowHover]="true">
  <ng-template pTemplate="header">
    <tr>
      <th style="text-align: center;" [pSortableColumn]="'Logger Name'">Logger Name
        <p-sortIcon [field]="'Logger Name'"></p-sortIcon>
      </th>
      <th style="text-align: center;" [pSortableColumn]="'Progress'">Progress
        <p-sortIcon [field]="'Progress'"></p-sortIcon>
      </th>
    </tr>
  </ng-template>
  <ng-template pTemplate="body" let-download>
    <tr>
      <td style="text-align: center;">{{ download.logger.name }}</td>
      <td style="text-align: center;">
        <p-progressBar [value]="download.progress"></p-progressBar>
      </td>
    </tr>
  </ng-template>
</p-table>

enter image description here

最佳答案

显然,我在 p-table 标记中遗漏了 #dt [columns]="cols"指令。填充 cols 字段并添加指令解决了问题。

关于angular7 - PrimeNG 表列排序不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54856204/

相关文章:

angular - 使用 primeNG turbo 表进行两级行扩展

angular - 将 javascript 生成的元素插入 primeng turbotable?

angular - 当我使用它来隐藏表列时,如何在多选 PrimeNG 中维护顺序?

javascript - 通过组件传递 ng-template

angular - 为 Angular 7 中的 ng e2e 测试设置特定环境,而无需为应用程序提供服务

angular - 使用 ngserve 时在 Angular 类中编译时出错

javascript - ngx-translate 提供后备语言

Angular 7 和 CDN

angular - 如何测试对输入字段中的 keydown 事件使用react的指令