我已经尝试过下面的代码,一切似乎都很好(没有收到任何错误,甚至 api 调用中的数据也有),但最后我得到了一个空表。
*reloadTable* 是调用 API 的函数。

来自 API 调用的数据:
Angular ngx-datatable 不刷新-LMLPHP

空表:
Angular ngx-datatable 不刷新-LMLPHP

@Component({
      selector: 'app-my-component',
      template: `
        <ngx-datatable
          class="bootstrap table table-striped"
          [rows]="rows"
          [columns]="columns"
          [columnMode]="'force'"
          [headerHeight]="50"
          [footerHeight]="50"
          [rowHeight]="'auto'"
          [externalPaging]="true"
          [externalSorting]="true"
          [count]="page.count"
          [offset]="page.offset"
          [limit]="page.limit"
          [sortType]="'single'"
          (page)="pageCallback($event)"
          (sort)="sortCallback($event)"
        ></ngx-datatable>
      `
    })

    export class NGXServerSide implements OnInit {
      rows: Object[]=[];
      columns = [
        { name: 'EmployeeID' },
        { name: 'Name' },
        { name: 'City' },
        { name: 'Department' },
        { name: 'Gender' },
      ];
      constructor(private httpClient: HttpClient, private _employeeService: EmployeeService) { }

      ngOnInit() {
        this.pageCallback({ offset: 1 });
      }
    pageCallback(pageInfo: { count?: number, pageSize?: number, limit?: number, offset?: number }) {
        this.page.offset = pageInfo.offset;
        this.reloadTable();
      }
    reloadTable() {
    const params = this.addTableParams();// params for api input
    this._employeeService.getSortedPagedResults(params).subscribe((res: Response) => {
     for (var i in res)
     this.rows.push([res[i]]);
     this.page.count=1;
     });
     }
    }

最佳答案

在查看了您的问题之后,我明白了问题所在。您正在将数据传递到数据表,但未显示。有两个问题:

  • 数据表不知道绑定(bind)到什么。在 NGXServerSide 类中,您只为列命名。为列提供一个要绑定(bind)的属性,如下所示:
    columns = [{ name: 'EmployeeID', prop: 'EmployeeID' }]
  • 您传入的对象与列名不匹配。在屏幕截图中,我可以看到 EmployeeId: '1' ,但您的专栏需要 EmployeeID

  • 我在下面包含了来自 ngx-datatable API 文档的链接,其中包含一些您可以使用的其他列属性。
    ngx-datatable column properties

    关于Angular ngx-datatable 不刷新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50943088/

    10-12 19:11