如何在 Angular 中使用动态生成多个无线电组

How to dynamically generate many radio groups using in Angular

我正在尝试根据数据库中的数据生成包含标签和两个收音机的列表。

component.html代码:

<li *ngFor="let method of testMethods">
     {{ method }}
     <input type="radio" [(ngModel)]="stepResult" name={{method}} value="pass">Pass
     <input type="radio" [(ngModel)]="stepResult" name={{method}} value="fail">Fail
 </li>

component.ts 代码(testMethods 包含示例值)

testMethods: string[] = ["First step", "Second step", "Third step"];
stepResult; 

我想要实现的是如下所示的列表:

我的问题是当我 select "Pass" 一步时,所有 "Pasess" 都被 selected。我做错了什么?

您将所有输入与一个变量 stepResult 绑定,因此当发生变化时,所有输入都会更新。例如,您可以将 stepResult 设为值数组:

 <li *ngFor="let method of testMethods; let i = index">
     {{ method }}
     <input type="radio" [(ngModel)]="stepResult[i]" name={{method}} value="pass">Pass
     <input type="radio" [(ngModel)]="stepResult[i]" name={{method}} value="fail">Fail
 </li>

并且在组件中:

stepResult = [];