2

所以,我在 mat-table 中使用data-label时遇到问题。我有一个包含大量数据列的表,并希望使其具有响应性。我用谷歌搜索了如何制作它,发现我可以使用data-label属性。问题是(据我了解)数据标签不支持角度 {{code}}。

它只能这样工作(仅限静态数据)。如果我试图在控制台中用花括号写一些东西,我有一个异常“无法绑定到‘标签’,因为它不是‘mat-cell’的已知属性。1.如果‘mat-cell’是一个 Angular 组件并且它有 'label' 输入,然后验证它是这个模块的一部分。 2. 如果 'mat-cell' 是一个 Web 组件,然后将 'CUSTOM_ELEMENTS_SCHEMA' 添加到这个组件的 '@NgModule.schemas' 以压制这条消息。”

谁能解释一下如何解决这个问题,谢谢!

静态数据在这里工作

<div class="example-header" fxLayout="row">
  <mat-form-field>
    <input matInput (keyup)="applyFilter($event.target.value)" placeholder="Filter">
  </mat-form-field>
</div>
<div class="example-container mat-elevation-z8">
  <mat-table [dataSource]="dataSource" matSort>
    <!-- ID Column -->
    <ng-container matColumnDef="id">
      <mat-header-cell *matHeaderCellDef mat-sort-header> ID </mat-header-cell>
      <mat-cell *matCellDef="let row" data-label="id"> {{row.cnt}} </mat-cell>
    </ng-container>
    <!-- Progress Column -->
    <ng-container matColumnDef="progress">
      <mat-header-cell *matHeaderCellDef mat-sort-header> Progress </mat-header-cell>
      <mat-cell *matCellDef="let row" data-label="progress"> {{row.progress}}% </mat-cell>
    </ng-container>
    <!-- Name Column -->
    <ng-container matColumnDef="name">
      <mat-header-cell *matHeaderCellDef mat-sort-header> Name </mat-header-cell>
      <mat-cell *matCellDef="let row" data-label="name"> {{row.name}} </mat-cell>
    </ng-container>
    <!-- Color Column -->
    <ng-container matColumnDef="color">
      <mat-header-cell *matHeaderCellDef mat-sort-header> Color </mat-header-cell>
      <mat-cell *matCellDef="let row" [style.color]="row.color" data-label="color"> {{row.color}} </mat-cell>
    </ng-container>
    <mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
    <mat-row *matRowDef="let row; columns: displayedColumns;">
    </mat-row>
  </mat-table>
  <mat-paginator [pageSizeOptions]="[5, 10, 25, 100]"></mat-paginator>
</div>
4

1 回答 1

10

它将解决您的问题:

<mat-cell *matCellDef="let row" [attr.data-label]="row"> {{element[row]}}</mat-cell>
于 2019-02-16T23:30:32.547 回答