如果我使用 *ngFor 和指令,我如何在 mat-table 中使用 "data-label"?
How can I use "data-label" in mat-table if I use *ngFor and directives?
所以,我在 mat-table 中使用 data-label 时遇到问题。我有一个 table,其中有很多包含数据的列,并希望使其响应。我google怎么弄的,发现可以用data-label属性。问题是(据我所知)data-label 不支持 angular {{code}}.
它只能像这样工作(仅限静态数据)。如果我试图在控制台中用大括号写一些东西,我会遇到一个异常“无法绑定到 'label',因为它不是 '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>
它将解决您的问题:
<mat-cell *matCellDef="let row" [attr.data-label]="row"> {{element[row]}}</mat-cell>
所以,我在 mat-table 中使用 data-label 时遇到问题。我有一个 table,其中有很多包含数据的列,并希望使其响应。我google怎么弄的,发现可以用data-label属性。问题是(据我所知)data-label 不支持 angular {{code}}.
它只能像这样工作(仅限静态数据)。如果我试图在控制台中用大括号写一些东西,我会遇到一个异常“无法绑定到 'label',因为它不是 '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>
它将解决您的问题:
<mat-cell *matCellDef="let row" [attr.data-label]="row"> {{element[row]}}</mat-cell>