Angular 选中的复选框禁用“使用角度”

Angular 选中的复选框禁用“使用角度”,angular,typescript,Angular,Typescript,有数据表和复选框。如果我们在所有页面中选择复选框(每个页面中只有很少的记录),我就能够获得所选记录的所有JSON数据,有人能建议我如何禁用所选复选框吗。尝试了以下获取json数据的代码 fnGetJsonData() { const data = this.persons.filter(f => f.checked); const mappedData = data.map(d => ({ id: d.id, firstName: d.f

有数据表和复选框。如果我们在所有页面中选择复选框(每个页面中只有很少的记录),我就能够获得所选记录的所有JSON数据,有人能建议我如何禁用所选复选框吗。尝试了以下获取json数据的代码

  fnGetJsonData() {
    const data = this.persons.filter(f => f.checked);

    const mappedData = data.map(d => ({
      id: d.id,
      firstName: d.firstName,
      lastName: d.lastName,
      dropdown: d.dropdown
    }));
    this.persons.filter(f => f.checked); // after got json need to disable the checkboxes
    console.log(JSON.stringify(mappedData));
  }

您已经在
数据
变量中获得了要“取消选中”的数据。 在HTML中,将复选框值绑定到
[(ngModel)]=“person.check”
。但是,您的逻辑中还检查了
属性
——这相当混乱。我强烈建议进行一些重构,首先为
persons
对象创建一个接口

话虽如此,针对当前代码的快速解决方案可以如下所示:

fnGetJsonData() {
  const data = this.persons.filter(f => f.checked);
  
  // ... your logic

  data.map(person => {
    person.check = false;
    person.checked = false;
  });
}

为了完成你的任务,我用了一个小技巧解决了这个问题。你可以在下面点击查看