表中的垫子复选框如何仅在单击复选框时才被选中,而不是在单击表的行时被选中



我的问题是,我有一个表,每行都有一个匹配框,用来选择行中的数据。不幸的是,当您仅单击复选框所在的行时,该复选框也被声明为已单击。

希望你能理解我的问题。提前感谢

<table mat-table [dataSource]="appState.appData.data.objects" #mm>
<!-- Id Column-->
<ng-container matColumnDef="id">
<th mat-header-cell *matHeaderCellDef> Id</th>
<td mat-cell *matCellDef="let element"> {{element.id}} </td>
</ng-container>
<!-- Checkbox Column -->
<ng-container matColumnDef="select">
<th mat-header-cell *matHeaderCellDef>
<mat-checkbox (change)="$event ? masterToggle() : null"
[checked]="merkmaleDescSelection.hasValue() && isAllSelected()"
[indeterminate]="merkmaleDescSelection.hasValue() && !isAllSelected()"
[aria-label]="checkboxLabel()">
</mat-checkbox>
</th>
<td mat-cell *matCellDef="let row">
<mat-checkbox (click)="$event.stopPropagation()"
(change)="onCheckedMerkmale($event, row)"
[checked]="merkmaleDescSelection.isSelected(row)"
[aria-label]="checkboxLabel(row)">
</mat-checkbox>
</td>
</ng-container>

正如注释中所指出的,您需要处理整个行元素上的单击事件。

<td mat-cell *matCellDef="let row">

成为

<td mat-cell *matCellDef="let row" (click)="onRowClick(row)">

然后,您需要实现onRowClick(row)来进行选择。我想这个实现将类似于onCheckedMerkmale($event, row)

最新更新