9

<mat-table>オプションの名前を表示するために a を使用したいのですが、それに対応する指定された値です (ユーザーが変更するため)。オプションは別の方法 (スライド トグルやマット選択など) で値を設定する必要がある場合があるため、データソースなしでこれを書き留める必要があります (または、少なくとも私が見つけることができる限り、1 つはできません)。 typescript ファイルで事前に作成された html タグを使用します)。

したがって、私の MWE は次のようになります。

<mat-table>
    <mat-header-row *matHeaderRowDef>
        <mat-header-cell>header</mat-header-cell>
    </mat-header-row>

    <mat-row>
        <mat-cell>
             cell
        </mat-cell>
    </mat-row>
</mat-table>

しかし、自分のページを見ると、文字列のない行が表示されているだけです。<mat-card>このテーブルを a (またはむしろ)内で使用したいのですが<mat-card-content>、その外で試しても、行だけが得られ、他には何もありません。これは、マット カード内で次のように表示されます。

空行

テーブルを正しく表示するにはどうすればよいですか?


*編集: * 頼まれたので、ここにも .ts ファイルがあります。

import { Component, OnInit, ViewChild } from '@angular/core';

@Component({
  selector: 'app-general',
  templateUrl: './general.component.html',
  styleUrls: ['./general.component.scss']
})
export class GeneralComponent implements OnInit {


  @ViewChild('resolutionSelect') resolutionSelect: MatSelect;

  resolutions: ResolutionOptionsInterface[] = [
    { value: '1920 x 1080' },
    { value: '800 x 600' }
  ];
  public selectedRes = this.resolutions[0];
  public isFullscreenEnabled = true;

  constructor() { }

  ngOnInit() {
    console.log("in oninit");
    this.resolutionSelect.value = this.resolutions[0].value;
  }

}

これは最小限の作業例よりも少し多いので、少し説明します。

  • 私のオプションの 1 つは解像度です。mat-select
  • これmat-selectは、次のように html ファイルに定義されています。
  • これには、配列mat-selectで定義されているように、事前定義された値が与えられますresolutions
  • もう 1 つのオプションは、単純にフルスクリーンを選択することですmat-slide-toggle(ただし、これはまだ完全には実装されていません)。

    <mat-select #resolutionSelect fxFlex="200px"> <mat-option *ngFor="let res of resolutions" [value]="res.value" class="right"> {{res.value}} </mat-option> </mat-select>

4

1 に答える 1

20

実際、データソースなしでマテリアル テーブルを作成することは可能です。表示された列とすべてでヘッダー定義を作成したことを確認する必要があります。

例 - html ファイル:

<table mat-table class="mat-elevation-z8">
  <ng-container matColumnDef="someValue">
    <th mat-header-cell *matHeaderCellDef mat-sort-header>Some Value Header</th>
  </ng-container>

  <ng-container matColumnDef="someOtherValue">
    <th mat-header-cell *matHeaderCellDef mat-sort-header>
      Some Other Value Header
    </th>
  </ng-container>

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

ts ファイル内で、配列を定義する必要があります

displayedColumns: string[] = ['someValue', 'someOtherValue'];

編集: 要件が定義済みの値がいくつかある単純なテーブルである場合は、マテリアル css クラスを含むネイティブ テーブル要素を使用してそれを実現できます。

<table class="mat-table" >
  <tr class="mat-header-row">
    <th class="mat-header-cell">A</th>
    <th class="mat-header-cell">B</th>
  </tr>
  <tr class="mat-row">
    <td class="mat-cell">A</td>
    <td class="mat-cell">B</td>
  </tr>
</table>
于 2019-04-29T14:56:56.823 に答える