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

Angular Material mat-select multiple无法将选中项推入数组问题求助

错误定位
  • 核心问题在forEach循环的判断条件中:你误将遍历的数组对象sel作为选中状态的判断主体,写为sel._selected,实际应该判断每一轮遍历的单个选项的选中属性,该条件永远不成立,因此无法进入push逻辑。
  • 额外优化提示:你使用的Angular Material多选组件的selectionChange事件中,e.source.selected本身就是所有已选中选项的集合,无需额外循环筛选可直接赋值使用。
修正后代码
const vals = [];
if (e && e.source.selected.length > 0) {
  console.log('selected values', e.source.selected);
  const sel = e.source.selected;
  sel.forEach((item: any) => {
    // 修正为判断当前遍历项的选中状态
    if (item._selected) {
      vals.push(item);
      console.log('EE', item);
    }
  });
  // 如需简化逻辑可直接用以下代码替代整个循环
  // vals = [...e.source.selected];
}

执行后即可得到你预期的选中值数组,可直接用于表单编辑模式下的选中数据绑定。

内容的提问来源于stack exchange,提问作者Mr. Learner

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 23:57:02