我在控制多个for循环中多个无线电选择的行为时遇到了麻烦。
在下面的演示中,当我检查第一个块的无线电时,它也在第二个块中选择相同的无线电。请看一看。实际上我需要在不同的块中选择不同的无线电选项。
demo: http://plnkr.co/edit/YpQZyv55tKxTGwDEi5gS?p=preview
答案 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])
答案 1 :(得分:1)
您必须根据name
和input
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
以获取此值。
希望这会对你有所帮助!!