You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular中如何通过代码取消mat-table指定行的选中状态?

取消SelectionModel中特定行的选中状态

当然有对应的方法啦!你已经熟悉用this.selection.clear()一键清空所有选中状态,但要精准取消特定行的选中,Angular的SelectionModel类提供了专门的deselect()方法来搞定这件事。

1. 取消单一行的选中

如果你已经拿到了要取消选中的那一行的数据对象,直接把它传入deselect()就可以了:

// 假设targetRow是你要取消选中的行数据
this.selection.deselect(targetRow);

2. 取消多行的选中

如果需要一次性取消多个特定行的选中,你可以遍历目标行数组,逐个调用deselect():

// 假设targetRows是包含多个待取消行数据的数组
targetRows.forEach(row => {
  this.selection.deselect(row);
});

小技巧:通过索引定位行来取消选中

如果你只知道要取消的行的索引,那可以先从数据源里取出对应的行数据,再调用取消方法:

// 假设dataSource是你的表格数据源,要取消索引为1的行(第二行)
const targetRow = this.dataSource.data[1];
this.selection.deselect(targetRow);

另外,你还可以先用isSelected()方法判断目标行是否处于选中状态,再执行取消操作,避免无效调用:

if (this.selection.isSelected(targetRow)) {
  this.selection.deselect(targetRow);
}

内容的提问来源于stack exchange,提问作者userx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:17:14