Angular Material mat-slide-toggle 切换仅适用于第一个组件

AngularMaterial mat-slide-toggle toogle working only for the first component

我有一个正在开发的 angular 项目,使用 angular 材质作为滑动开关和文本字段,使用 cdk 拖放功能实现拖放功能。我对 angular 库和一般的 angular 很陌生。

我 运行 遇到了滑动切换仅切换 *ngFor 循环内的第一个元素的问题。我已经尝试将 let i = index 添加到 ngFor 中,无论您选择哪个 select,它始终作为 0 传递,但是如果我放置 {{ i }},它将显示为正确的索引。我很茫然。

https://stackblitz.com/edit/angular-yezv9a

如果你在 link 进入项目并切换测试 2 或 3 切换,它会移动第一个 1,我似乎无法弄清楚为什么

感谢任何帮助

如果我理解正确的话,你的代码中有一个问题是 mat-slide-toggle 元素有一个 ID 在 ngFor

中重复

<mat-slide-toggle id="toggle" color="primary" (change)="onToggle(button)" [checked]="button.enabled"></mat-slide-toggle>

我删除了 id 属性并发现工作正常,根据我的理解,您可以在下面找到一个工作示例的分支 url

https://angular-yezv9a-bac1jz.stackblitz.io/

将 id 属性设置为空

将按预期工作