3

我在我的项目中使用 Angular 2+ 和 Teradata 共价数据表。我有一个有很多列和 50 行的表。由于 html 代码中的某些原因,我只看到大约 12 行并滚动。当我滚动它时,它会重新渲染数据并显示其他 12 行,因此页面运行缓慢。

有一些html:

<td-data-table
        #dataTable
        [(ngModel)]="selectedRows"
        [data]="filteredData"
        [columns]="columns"
        [selectable]="true"
        [multiple]="true"
        [sortable]="true"
        [sortBy]="sortBy"
        [sortOrder]="sortOrder"
        (sortChange)="sort($event)"
        (rowSelect)="rowSelect($event)"
        (selectAll)="selectAllEvent($event)"
        class="fixed-header">

      <ng-template tdDataTableTemplate="Id"
            let-value="value"
            let-row="row"
            let-column="column">
        <ng-container *ngIf="row['Source'] == 1; else elseTemplate">
          ...
        </ng-container>
        <ng-template #elseTemplate>
          ...
        </ng-template>
      </ng-template>

      <ng-template tdDataTableTemplate="Rate"
            let-value="value"
            let-row="row"
            let-column="column">
      ...
      </ng-template>

我该如何解决这个问题?

也许 covalent 有一些标志可以一次渲染所有 50 行而不重新渲染?

4

1 回答 1

2

我在使用有角材质组件(步进器)时遇到了同样的问题,原因是动画。因此,我为您提供了 3 个解决方案:

解决方案1,如果您不关心动画:

尝试使用NoopAnimationsModule代替BrowserAnimationsModule

解决方案2,如果你喜欢冒险并且乐观:

尝试将您的 Angular 更新到最新版本。从 5 升级到 7 时,我注意到动画的巨大差异。有 Angular 升级工具可以帮助您解决这个问题。

解决方案 3,如果动画和速度是强制性的,或者您有很多时间:

您可以尝试使用其他表库或构建自己的表库。

于 2019-06-20T15:02:35.973 回答