角度材料表未显示值

时间:2021-04-14 04:07:04

标签: angular typescript

我有一些数据需要显示在表格中,但没有显示。当我在其他元素中显示时,它显示但不在表格中。

我的代码

    <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 但没有在这张桌子上我做错了什么?

2 个答案:

答案 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'];

您也可以查看文档以获得帮助,但它会起作用。