1

Angular Material が提供するテーブル機能の使用方法を学習するためにテーブルを生成しようとしていますが、現在行き詰っています。私が見落としているのはかなり基本的なものだと思います。ウィザードの 1 人が私が間違っていることを理解してくれることを願っています (テンプレートにはまだ実装されていないため、他のページ パーツへの移動は無視してください)。

コンソールに次のエラーが表示されます。

ERROR Error: Could not find column with id "id".

.ts ファイル:

import { Component, OnInit, ViewChild } from "@angular/core";
import { Router } from "@angular/router";
import { MatSort } from "@angular/material/sort";
import { MatTableDataSource } from "@angular/material/table";

import { metingen } from "../mocks/metingen.mock";

@Component({
  selector: "app-overzicht-metingen",
  template: `
    <table mat-table [dataSource]="dataSource" matSort class="mat-elevation-z8">
      <!-- Position Column -->
      <ng-container matColumnDef="position">
        <th mat-header-cell *matHeaderCellDef mat-sort-header>No.</th>
        <td mat-cell *matCellDef="let element">{{ element.id }}</td>
      </ng-container>

      <!-- Name Column -->
      <ng-container matColumnDef="name">
        <th mat-header-cell *matHeaderCellDef mat-sort-header>Name</th>
        <td mat-cell *matCellDef="let element">
          {{ element.datumVanDeMeting }}
        </td>
      </ng-container>

      <!-- Weight Column -->
      <ng-container matColumnDef="weight">
        <th mat-header-cell *matHeaderCellDef mat-sort-header>Weight</th>
        <td mat-cell *matCellDef="let element">{{ element.producttype }}</td>
      </ng-container>

      <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
      <tr mat-row *matRowDef="let row; columns: displayedColumns"></tr>
    </table>
  `,
  styles: []
})
export class OverzichtMetingenComponent implements OnInit {
  // toevoegen van een meting
  displayedColumns: string[] = ["id", "datumVanDeMeting", "producttype"];
  dataSource = new MatTableDataSource(metingen);

  @ViewChild(MatSort, { static: true }) sort: MatSort;

  constructor(private router: Router) {}

  ngOnInit() {
    this.dataSource.sort = this.sort;
  }

  onSelect(id: string) {
    this.router.navigate(["/inzien-meting", id]);
  }
}

モックされたデータを含む私のファイル:

import { Meting } from "../models/meting";

export const metingen: Meting[] = [
  {
    id: "1",
    datumVanDeMeting: new Date(),
    producttype: "variant A",
    sensor1: [1, 2, 3],
    sensor2: [2, 3, 4],
    sensor3: [3, 4, 5],
    sensor4: [4, 5, 6]
  },
  {
    id: "2",
    datumVanDeMeting: new Date(),
    producttype: "variant B",
    sensor1: [3, 2, 2],
    sensor2: [4, 3, 3],
    sensor3: [5, 4, 4],
    sensor4: [6, 5, 5]
  },
  {
    id: "3",
    datumVanDeMeting: new Date(),
    producttype: "variant A",
    sensor1: [9, 2, 9],
    sensor2: [8, 3, 8],
    sensor3: [7, 4, 7],
    sensor4: [6, 5, 6]
  },
  {
    id: "4",
    datumVanDeMeting: new Date(),
    producttype: "variant B",
    sensor1: [1, 4, 3],
    sensor2: [2, 3, 7],
    sensor3: [3, 9, 5],
    sensor4: [8, 5, 6]
  },
  {
    id: "5",
    datumVanDeMeting: new Date(),
    producttype: "variant A",
    sensor1: [7, 3, 3],
    sensor2: [2, 4, 7],
    sensor3: [8, 5, 5],
    sensor4: [4, 7, 9]
  }
];
4

0 に答える 0