
こんな悩みを解決できる記事を書きました!
僕は現役フリーランスエンジニア(歴10年)で、資格は13個保有しています。
「AngularのMat Tableでデータがない場合の表示方法を知りたい」とお考えではありませんか?
結論からお伝えすると、matNoDataRow
を使えばデータがない場合にメッセージを表示できます。



超簡単なのでサクッと解説します。


本記事を読めば、AngularのMat Tableでデータがない場合の表示方法について分かるので早速見ていきましょう!



すぐ読み終わるので、ぜひ最後まで読んでくださいませ。
【Angular】Mat Tableでデータがない場合の表示方法
早速ですが、AngularのMat Tableでデータがない場合の表示方法を解説します。
matNoDataRowを使用する
<table mat-table [dataSource]="dataSource" class="mat-elevation-z8">
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef> 名前 </th>
<td mat-cell *matCellDef="let element"> {{element.name}} </td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
<tr mat-no-data-row *matNoDataRow>データがありません</tr>
</table>
Angular Materialのmat-table
では、matNoDataRow
を使うとデータがない場合にメッセージを表示できます。
matNoDataRow
を設定すれば、データがない場合でも見た目が崩れずユーザーにわかりやすく伝えられます。
列を連結する場合
<tr mat-no-data-row *matNoDataRow>
<td [attr.colspan]="displayedColumns.length" class="text-center">
データがありません
</td>
</tr>
matNoDataRow
を使うと1列にしかメッセージが表示されません。
表全体にメッセージを表示したい場合は、colspan
を使います。
Angularのバージョンが15以上の場合
<tr *matNoDataRow class="mat-mdc-row mdc-data-table__row">
<td class="mat-mdc-cell mdc-data-table__cell" [attr.colspan]="columns.length">データがありません。</td>
</tr>
Angularのバージョンが15以上の場合は、上記のように設定すればメッセージが正しく表示されます。
よくある質問
matNoDataRow
が動作しません。
mat-table
のdataSource
がnull
またはundefined
だと機能しません。
空の配列([]
)を設定してください。
matNoDataRow
をカスタマイズできますか?
<tr mat-no-data-row>
のスタイルを変更すれば、背景色やフォントサイズを自由に調整できます。
まとめ
今回は、AngularのMat Tableでデータがない場合の表示方法について解説しました。
以下が本記事のまとめになります。
- おすすめ本
Angularの勉強なら「Angularアプリケーションプログラミング



最後までお読みいただき、ありがとうございました!
- クソおすすめ本



海外のエンジニアがどういった思考で働いているかが理解できます。
海外に行く気はないけど海外エンジニアの動向が気になる雑魚エンジニアにおすすめです(本当におすすめな本しか紹介しないのでご安心を)。