仍然能够在Mat表中选择已禁用的复选框

时间:2019-06-04 13:36:20

标签: angular checkbox mat-table

我有带有复选框列的Mat表。我根据某些条件将某些复选框设置为禁用。但是,如果单击该行,用户仍然可以选择该复选框。禁用后如何防止选中该复选框:这是我从材料设计站点https://stackblitz.com/edit/angular-erpaus?file=app%2Ftable-selection-example.html派生的Stackblitz示例。您无法单击该复选框,但是如果在其外部单击,则会选中该复选框:enter image description here

s_percent

2 个答案:

答案 0 :(得分:1)

我认为,当您单击行时,将选择该行。在您的代码中:[checked]="selection.isSelected(row)"检查是否选择了行,并且当此表达式返回true时,将选中复选框,因此您必须在单击后关闭选择行。

答案 1 :(得分:1)

正如@AmitBaranes所说,删除(click)="selection.toggle(row)"应该可以,但是如果条件为true,则将无法选择一行。 如果要禁用某些行并启用其他行,则可以实现类似(click)="!row.excluded && selection.toggle(row)"的条件。 请参见stackblitz中的完整示例。