如果在Angular 2+中选中了三个以上,则禁用复选框

时间:2019-12-09 14:02:28

标签: angular

我用角形材料创建了一个表格,我将比较三行的数据。 现在,如果我选中了三个框,则必须禁用所有其他复选框。 我知道我可以使用物料表中的[已禁用]状态,但是如果我选中了三个框,则所有框都被禁用。但是我必须取消选中复选框,以便我可以更改集合。

如何编写if else语句?

Working tree

1 个答案:

答案 0 :(得分:1)

只需在禁用状态下添加!selection.isSelected(row)即可:

 <!-- Checkbox Column -->
  <ng-container matColumnDef="select">
    <th mat-header-cell *matHeaderCellDef></th>
    <td mat-cell *matCellDef="let row">
      <mat-checkbox (click)="$event.stopPropagation()" (change)="$event ? selectRow($event, row) : null" (change)="$event ? selection.toggle(row) : null" [checked]="selection.isSelected(row) == true" [disabled]="disableBoxes && !selection.isSelected(row)"
      >
      </mat-checkbox>
    </td>
  </ng-container>

Working Demo