質問するログイン新規登録

Q&A

解決済

1回答

1251閲覧

Angular 一覧にチェックボックスが表示されない

t_flutter

総合スコア7

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2023/07/29 07:25

0

0

実現したいこと

Angularで勉強がてらGUIの作成をしています。
チェックボックス、日付、時間を一覧表示するテーブルを作成しようとしています。
イメージ説明

参考
こちらのサイトをほぼコピペして実行してみたのですがチェックボックスが全く表示されません。
実行結果は以下の通りです。
イメージ説明
何が原因かわからないためお気づきの点ございましたらよろしくお願いします。

発生している問題・エラーメッセージ

特にエラーは発生していません。

該当のソースコード

html

1<div class="block-header"> 2 <p>オーダー一覧</p> 3</div> 4<div class="button"> 5 <div class="toreviewbutton"> 6 <button igxButton="outlined" routerLink="/review"> 7 レビュー画面へ 8 </button> 9 </div> 10 <div class="databutton"> 11 <button igxButton="outlined"> 12 データ連携 13 </button> 14 </div> 15</div> 16<hr> 17 18<div class="example-container mat-elevation-z8"> 19 <mat-table #table [dataSource]="dataSource"> 20 21 <!-- Checkbox Column --> 22 <ng-container matColumnDef="select"> 23 <mat-header-cell *matHeaderCellDef> 24 <mat-checkbox (change)="$event ? masterToggle() : null" 25 [checked]="selection.hasValue() && isAllSelected()" 26 [indeterminate]="selection.hasValue() && !isAllSelected()"> 27 </mat-checkbox> 28 </mat-header-cell> 29 <mat-cell *matCellDef="let row"> 30 <mat-checkbox (click)="$event.stopPropagation()" 31 (change)="$event ? selection.toggle(row) : null" 32 [checked]="selection.isSelected(row)"> 33 </mat-checkbox> 34 </mat-cell> 35 </ng-container> 36 37 <ng-container matColumnDef="id"> 38 <mat-header-cell *matHeaderCellDef> No. </mat-header-cell> 39 <mat-cell *matCellDef="let data"> {{data.id}} </mat-cell> 40 </ng-container> 41 42 <ng-container matColumnDef="day"> 43 <mat-header-cell *matHeaderCellDef> date </mat-header-cell> 44 <mat-cell *matCellDef="let data"> {{data.day}} </mat-cell> 45 </ng-container> 46 47 <ng-container matColumnDef="time"> 48 <mat-header-cell *matHeaderCellDef> time </mat-header-cell> 49 <mat-cell *matCellDef="let data"> {{data.time}} </mat-cell> 50 </ng-container> 51 52 <mat-header-row *matHeaderRowDef="columnName"></mat-header-row> 53 <mat-row *matRowDef="let row; columns: columnName;" (click)="selection.toggle(row)"></mat-row> 54 </mat-table> 55</div> 56 57<mat-checkbox></mat-checkbox>

css

1.button { 2 text-align: center; 3} 4 5.toreviewbutton { 6 display: inline-block; 7 margin-right: 100px; 8} 9 10.databutton { 11 display: inline-block; 12} 13 14 15.example-container { 16 display: flex; 17 flex-direction: column; 18 max-height: 500px; 19 min-width: 300px; 20} 21 22.mat-table { 23 overflow: auto; 24 max-height: 500px; 25} 26 27.mat-column-select { 28 overflow: visible; 29} 30

ts

1import { Component } from '@angular/core'; 2import { SelectionModel } from '@angular/cdk/collections';//チェックボックスように追加 3import { MatTableDataSource } from '@angular/material/table'; 4export interface FoodModel { 5 day: string; 6 id: number; 7 time: string; 8} 9 10const FOOD_DATA: FoodModel[] = [ 11 { id: 1, day: '2023/7/25', time: '09:20:15' }, 12 { id: 2, day: '2023/7/25', time: '09:20:16' }, 13 { id: 3, day: '2023/7/25', time: '09:20:17' }, 14 { id: 4, day: '2023/7/25', time: '09:20:18' }, 15 { id: 5, day: '2023/7/25', time: '09:20:19' }, 16 { id: 6, day: '2023/7/25', time: '09:20:20' }, 17 { id: 7, day: '2023/7/25', time: '09:20:21' }, 18 ]; 19 20 21@Component({ 22 selector: 'order-component', 23 templateUrl: './order.component.html', 24 styleUrls: ['./order.component.css'] 25}) 26 27export class OrderComponent { 28 columnName = ['id', 'day', 'time']; 29 dataSource = new MatTableDataSource<FoodModel>(FOOD_DATA); 30 selection = new SelectionModel<FoodModel>(true, []); 31 32 /** Whether the number of selected elements matches the total number of rows. */ 33 isAllSelected() { 34 const numSelected = this.selection.selected.length; 35 const numRows = this.dataSource.data.length; 36 return numSelected === numRows; 37 } 38 39 /** Selects all rows if they are not all selected; otherwise clear selection. */ 40 masterToggle() { 41 this.isAllSelected() ? 42 this.selection.clear() : 43 this.dataSource.data.forEach(row => this.selection.select()); 44 } 45} 46 47

補足情報(FW/ツールのバージョンなど)

Package Version

@angular-devkit/architect 0.1601.6
@angular-devkit/build-angular 16.1.6
@angular-devkit/core 16.1.6
@angular-devkit/schematics 16.1.6
@angular/cdk 16.1.6
@angular/cli 16.1.6
@angular/material 16.1.6
@schematics/angular 16.1.6
rxjs 7.8.1
typescript 5.1.6
zone.js 0.13.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

checkboxの列をorder.component.tsに定義し忘れていた。

投稿2023/07/29 10:31

t_flutter

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.29%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問