处理多循环中的单选按钮行为

时间:2018-03-07 05:25:33

标签: angular for-loop radio

我在控制多个for循环中多个无线电选择的行为时遇到了麻烦。

在下面的演示中,当我检查第一个块的无线电时,它也在第二个块中选择相同的无线电。请看一看。实际上我需要在不同的块中选择不同的无线电选项。

demo: http://plnkr.co/edit/YpQZyv55tKxTGwDEi5gS?p=preview

2 个答案:

答案 0 :(得分:1)

模板更改

<div *ngFor="let a of abc; let i = index" >
  <p>{{a}}</p>
  <div *ngFor="let enum of enum_details; let e = index">
    <label for="enum{{i+1}}{{e + 1}}">
      <input id="enum{{i+1}}{{e+1}}" [value]='enum.name' type="radio" name="enums{{i+1}}{{e+1}}" [(ngModel)]="radioSelected[i]">
      {{enum.name}}
    </label>
  </div>
</div>

并更改组件

radioSelected:string[] = []

现在你得到了radioSelected数组的值(第一个无线电块的radioSelected [0]和第二个块的radioSelected [1])

Plunker

答案 1 :(得分:1)

Working Plunker

您必须根据nameinput

更改parent index的{​​{1}}

示例child index.

然后,您需要根据name="enums{{i+1}}{{e+1}}"

创建动态模型

示例parent index

并在您的组件中将radioSelected[i]替换为radioSelected:any;

因此,请在模板中使用以下代码

radioSelected:string[] = [];

您将在 <input id="enum{{i+1}}{{e+1}}" [value]='enum.name' type="radio" name="enums{{i+1}}{{e+1}}" [(ngModel)]="radioSelected[i]">

中获得输入选择值

radioSelected[index]index

示例:如果您选择0..n循环的值为hello,则您将访问组件中的Kumar以获取此值。

希望这会对你有所帮助!!