首页 > 解决方案 > 更新数据源后数据表不显示数据

问题描述

我有问题,更新数据数组(FileDto)后,数据表中没有可见的变化

我已经 testet 将数据放在 ngFor 中,它工作正常。

在 html 中:

<ngx-datatable
  class="material striped"
  [rows]="fileDtos"
  [columnMode]="'force'"
  [rowHeight]="'auto'"
  [messages]="gridMessages"
>
    <ngx-datatable-column name="name" >
        <ng-template let-column="column" ngx-datatable-header-template>
          <strong>{{ 'FILES.NAME' | translate}}</strong>
        </ng-template>
    </ngx-datatable-column>
</ngx-datatable>

打字稿文件:

loadFiles(): void {
    this._fileService.getFiles(this.auftragId, false).subscribe(files => {
      this.fileDtos = files;
      this._fileService.getExcelFiles(this.auftragId).subscribe(filesexcel => {
        if ( filesexcel) {
          filesexcel.forEach(item => {
            this.fileDtos.push(item);
          });
        }
      });
    });
}

数据对象:

export class FileDto {
    name: string;
    iconUrl: string;
    extension: string;
    created: Date | string;
    modified: Date | string;
}

我没有错误消息,也没有在数据表中显示任何数据。任何想法为什么?

样本数据:

{name: "Filename1.xlsm", iconUrl: null, extension: "", created: "2019-03-12T13:37:25.973", modified: "0001-01-01T00:00:00"}
{name: "Filename2.xlsm", iconUrl: null, extension: "", created: "2019-03-12T12:13:53.847", modified: "0001-01-01T00:00:00"}
{name: "Filename3.xlsm", iconUrl: null, extension: "", created: "2019-03-12T13:37:25.973", modified: "0001-01-01T00:00:00"}

标签: angulartypescript

解决方案


感谢@sgrillon 提示订阅订阅是一种不好的做法。现在它的工作正常。

以下是我使用 forkJoin 解决的方法:

forkJoin(
      this._fileService.getFiles(this.auftragId, false), this._fileService.getExcelFiles(this.auftragId)
    ).subscribe((files) => {
      this.fileDtos = files[0].concat(files[1]);
    });

推荐阅读