Как я могу использовать «data-label» в mat-table, если я использую * ngFor и директивы? - PullRequest
0 голосов
/ 31 января 2019

Итак, у меня проблема с использованием data-label в моей таблице mat.У меня есть таблица с большим количеством столбцов с данными, и я хочу, чтобы она была адаптивной.Я Google, как я могу сделать это и обнаружил, что я могу использовать data-label атрибут.Проблема в том, что (как я понимаю) метка данных не может поддерживать 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 Ответ

0 голосов
/ 17 февраля 2019

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

<mat-cell *matCellDef="let row" [attr.data-label]="row"> {{element[row]}}</mat-cell>
...