角材料表数据源问题

时间:2019-11-23 15:24:56

标签: angular typescript angular-material

我想使用Angular Material表。我有一个函数,可以将要显示的内容带回销售阵列。此功能工作正常,但我的桌子上看不到任何东西。如果我用一个简单的表来显示销售额,它就可以工作,那么我的数据源变量就会出现问题...

export class SaleListingComponent implements OnInit {
constructor(private saleService: SaleDomainService, private router:Router) { }

  public sales: Sale[];
  dataSource=this.sales;

  ngOnInit() {
    this.loadSales();

  }

  private loadSales() {
    this.saleService.getSales().subscribe(
      data => { this.sales = data },
      err => console.error(err),
      () => console.log("sales loaded.", JSON.stringify(this.sales))      
    );

  } 
}
 <table mat-table [dataSource]="dataSource" class="mat-elevation-z8">

    <ng-container matColumnDef="id">
      <th mat-header-cell *matHeaderCellDef> No. </th>
      <td mat-cell *matCellDef="let element"> {{element.id}} </td>
    </ng-container>

    <ng-container matColumnDef="amount">
      <th mat-header-cell *matHeaderCellDef> amount </th>
      <td mat-cell *matCellDef="let element"> {{element.amount}} </td>
    </ng-container>

    <ng-container matColumnDef="date">
      <th mat-header-cell *matHeaderCellDef> date </th>
      <td mat-cell *matCellDef="let element"> {{element.date}} </td>
    </ng-container>

    <ng-container matColumnDef="industry">
      <th mat-header-cell *matHeaderCellDef> industry </th>
      <td mat-cell *matCellDef="let element"> {{element.industry}} </td>
    </ng-container>

        <ng-container matColumnDef="price">
          <th mat-header-cell *matHeaderCellDef> price </th>
          <td mat-cell *matCellDef="let element"> {{element.price}} </td>
        </ng-container>

    <ng-container matColumnDef="prod">
      <th mat-header-cell *matHeaderCellDef> prod </th>
      <td mat-cell *matCellDef="let element"> {{element.prod}} </td>
    </ng-container>

        <ng-container matColumnDef="productType">
          <th mat-header-cell *matHeaderCellDef> productType </th>
          <td mat-cell *matCellDef="let element"> {{element.productType}} </td>
        </ng-container>

        <ng-container matColumnDef="salesman">
          <th mat-header-cell *matHeaderCellDef> salesman </th>
          <td mat-cell *matCellDef="let element"> {{element.salesman}} </td>
        </ng-container>      

    <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
    <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
  </table>

1 个答案:

答案 0 :(得分:1)

将[dataSource] =“ dataSource”更改为`[dataSource] =“ sales”