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

Angular中ngFor循环内使用单选框组时ngModel全选问题如何解决?

错误原因

  • 同一问题下所有单选框的value值都绑定为pergunta.id,值完全相同导致选中一个就会触发同name下所有同value的单选框同时选中
  • 所有单选框的id属性重复,不符合DOM id唯一的规范

修正后的代码

<div class="py-3" *ngFor="let pergunta of perguntas">  
            <label>{{pergunta.id}}</label> 
            <label>{{pergunta.texto_pergunta}}</label>   

                <div *ngFor="let opcao of ['Otimo','Bom','Regular','Ruim','Péssimo']; let index = index">  
                    <input  class="form-check-input" type="radio"  
                            id="opcoes_{{pergunta.id}}_{{index}}" 
                            [(ngModel)]="pergunta.resposta" 
                            name="opcoes_{{pergunta.id}}"
                            value = "{{opcao}}"
                            > 
                        {{opcao}}   
                </div> 
</div>

调整说明

  • 将value绑定值改为当前遍历的选项opcao,保证同一问题下每个单选框的value唯一,只会选中对应选项
  • 给单选框id增加序号后缀,保证全局DOM id唯一
  • 用[(ngModel)]双向绑定语法简化写法,替代拆分的[ngModel]和(ngModelChange),逻辑完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:27:04