我正在尝试从表格行中取消行选择的绑定(bind),以便单击该行中的任何位置都不会选中该复选框。我希望仅在单击框本身时才选中该复选框,以便当用户单击其他位置(有点像Gmail收件箱)时可以腾出空间来添加可扩展的行。

我只是不知道如何取消绑定(bind)从行的复选框。

这是复选框列的标记

  <ng-container matColumnDef="select">
    <th mat-header-cell *matHeaderCellDef>
      <mat-checkbox (change)="$event ? masterToggle() : null"
                    (click)="$event.stopPropagation()"
                    [checked]="selection.hasValue() && isAllSelected()"
                    [indeterminate]="selection.hasValue() && !isAllSelected()"
                    [aria-label]="checkboxLabel()">
      </mat-checkbox>
    </th>
    <td mat-cell *matCellDef="let row">
      <mat-checkbox (click)="$event.stopPropagation()"
                    (change)="$event ? selection.toggle(row) : null"
                    [checked]="selection.isSelected(row)"
                    [aria-label]="checkboxLabel(row)">
      </mat-checkbox>
    </td>
  </ng-container>

最佳答案

我没有在您的问题中看到相关的模板代码,但看起来您正在遵循example Material 中提供的docs。在这种情况下,底部的mat-table中将包含以下代码

<tr mat-row *matRowDef="let row; columns: displayedColumns;"
      (click)="selection.toggle(row)">
</tr>

只需删除click事件即可将row切换为选定

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

现在,单击该行将不会选中您的复选框。

10-05 20:52
查看更多