Как я могу использовать "data-label" в mat-table, если я использую *ngFor и директивы?

Итак, у меня проблема с использованием метки данных в моей таблице mat. У меня есть таблица с большим количеством столбцов с данными, и я хочу, чтобы она была адаптивной. Я Google, как я могу сделать это и обнаружил, что я могу использовать атрибут метки данных. Проблема в том, что (как я понимаю) метка данных не может поддерживать angular {{code}}.

Работает только так (только статические данные). Если я пытаюсь записать что-то в фигурные скобки в консоли, у меня есть исключение: "Невозможно связать с" label ", поскольку это не известное свойство" mat-cell ". 1. Если" mat-cell " угловой компонент, и он имеет вход "label", затем убедитесь, что он является частью этого модуля 2. Если "mat-cell" является веб-компонентом, добавьте "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>

1 ответ

Это решит вашу проблему:

<mat-cell *matCellDef="let row" [attr.data-label]="row"> {{element[row]}}</mat-cell>
Другие вопросы по тегам