我有一些数据需要显示在表格中,但没有显示。当我在其他元素中显示时,它显示但不在表格中。
我的代码
<mat-accordion *ngIf="posts.length > 0">
<mat-expansion-panel *ngFor="let post of posts">
<mat-expansion-panel-header>
<mat-panel-title>
{{post.name}}
</mat-panel-title>
</mat-expansion-panel-header>
<p>{{ post.type}}</p>
</mat-expansion-panel>
</mat-accordion>
<table mat-table [dataSource]="posts" class="mat-elevation-z8" *ngIf="posts.length > 0">
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef> Name. </th>
<td mat-cell *matCellDef="let element"> {{element.name}} </td>
</ng-container>
<ng-container matColumnDef="company">
<th mat-header-cell *matHeaderCellDef> Company </th>
<td mat-cell *matCellDef="let element"> {{element.company}} </td>
</ng-container>
<ng-container matColumnDef="type">
<th mat-header-cell *matHeaderCellDef> Type </th>
<td mat-cell *matCellDef="let element"> {{element.type}} </td>
</ng-container>
<ng-container matColumnDef="quantity">
<th mat-header-cell *matHeaderCellDef> Quantity </th>
<td mat-cell *matCellDef="let element"> {{element.quantity}} </td>
</ng-container>
</table>
<p *ngIf="posts.length == 0" class="info-text mat-body-1">No Reccord added yet</p>
你可以看到我先有 mat-accordion 然后我有一张桌子记录显示在 mat-accordion 但没有在这张桌子上我做错了什么?
答案 0 :(得分:1)
在上面的示例表中,缺少行信息。
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
displayedColumns 应该是要显示的列数组。 https://material.angular.io/components/table/overview
答案 1 :(得分:0)
上面的答案是对的,但是
您需要添加
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
也在 .ts 文件中定义你的列
displayedColumns: string[] = ['name', 'company', 'type', 'quantity'];
您也可以查看文档以获得帮助,但它会起作用。