做问卷调查功能项目时,使用了ng-repeat 里面嵌套 ng-repeat 然后获取radio的ng-model值时,发现只能获取到当前点到的radio的值;而点击checkbox的时候,angular报错 Error: [$rootScope:infdig],代码如下:
html结构:
<ul class="options_box" >
<li ng-repeat="item in ques" >
<div class="opt" ng-repeat="nums in item.ques_item_options track by $index">
<!-- 单选 -->
<input type="radio" class="magic-radio " name="{{nums.ques_item_option}}"
value="{{item.ques_item_id}},{{nums.item_option_id}}"
id="{{nums.item_option_id}}"
title="{{nums.ques_item_option}}"
ng-model="formdata.option_id[$index]"
ng-if="item.ques_item_type==1" ng-required="required"
/>
<!-- 多选 -->
<input class="magic-checkbox" type="checkbox" name="{{nums.ques_item_option}}"
id="{{nums.item_option_id}}"
ng-model="formdata.item_option_id[$index]"
ng-true-value="'{{item.ques_item_id}},{{nums.item_option_id}}'"
ng-false-value="'NO'"
ng-checked="formdata.item_option_id[$index]"
ng-if="item.ques_item_type==2"
ng-checked="nums.selected"
ng-required="formdata.item_option_id[$index]"
/>
<label for="{{nums.item_option_id}}">
<p class="right">
<i ng-bind="nums.item_option_id"></i>
<i ng-bind="nums.ques_item_option"></i>
</p>
</label>
</div>
</li>
</ul>
数据结构:
$scope.ques = [
{
"ques_item_id":"2",
"ques_item_type":"1",
"ques_item_title":"111111",
"ques_item_options":
[
{
"item_option_id":"2",
"item_option":"选项1",
"item_option_count":"1",
"item_option_voted":1
},
{
"item_option_id":"3",
"item_option":"选项2",
"item_option_count":"0",
"item_option_voted":2
}
]
},
{
"ques_item_id":"3",
"ques_item_type":"2",
"ques_item_title":"22222",
"ques_item_options":
[
{
"item_option_id":"4",
"item_option":"选项1",
"item_option_count":"1",
"item_option_voted":1
},
{
"item_option_id":"5",
"item_option":"选项2",
"item_option_count":"1",
"item_option_voted":1
}
]
},
{
"ques_item_id":"8",
"ques_item_type":"1",
"ques_item_title":"333333",
"ques_item_options":
[
{
"item_option_id":"16",
"item_option":"选项1",
"item_option_count":"0",
"item_option_voted":2
},
{
"item_option_id":"17",
"item_option":"选项2",
"item_option_count":"0",
"item_option_voted":2
},
{
"item_option_id":"18",
"item_option":"选项3",
"item_option_count":"0",
"item_option_voted":2
}
]
}
渲染页面截图:(单选题点击时只能拿到当前题的值,但是拿不到我已经点击过的值,是因为$index值?)
这是多选题时报错,不知道是什么原因引起的,怀疑是因为$index引起,有什么方法可以解决这个问题?