我对Angular很新,我在单选按钮上设置默认选项时遇到了一些问题。我已经检查了其他答案,使用$parent
无法解决我的问题,或者我使用错了。
我有一组单选按钮,其中包含2个输入:
input type="radio" name="@{{ form.form_id }}_@{{ $index }}" ng-model="$parent.field.field_data.suggested" value="@{{ field.field_data.value_a}}" > @{{ field.field_data.value_a }} <br>
input type="radio" name="@{{ form.form_id }}_@{{ $index }}" ng-model="$parent.field.field_data.suggested" value="@{{ field.field_data.value_b }}"> @{{ field.field_data.value_b }}
如果页面仅显示1组(对)单选按钮,则它会正确设置单选按钮组的默认值。这里的问题是,当ng-repeat生成3组(3对)单选按钮时,它只设置最后一组单选按钮的值,而其他2组保持未选中或空白。
这是因为单选按钮是使用2 ng重复生成的吗?为了帮助,这是我的代码。
我有一个数组$scope.filtered_forms
,它由:
$scope.filtered_forms[index] = {
form_id:id,
fields:[{
field_data: {field.label,
field_suggested:string,
value_a:string,
value_b:string},
field_type: radio
},{
field_data: {field.label,
field_suggested:string,
value_a:string,
value_b:string},
field_type radio
},{
...same input as above each object represents a group of radio
}]
}
基本上,$scope.filtered_forms
包含表单对象。在我的html文件中,我有这个:
<div ng-repeat="form in filtered_forms" id="@{{ form.form_id }}">
<table class="table" id="borderless">
<tr ng-repeat="field in form.fields">
<th scope="row" width="35%">@{{ field.field_data.label }}</th>
<td>
<div ng-if="field.field_type == 'radio'" style="margin-bottom: 10px">
<input type="radio" name="@{{ form.form_id }}_@{{ $index }}" ng-model="$parent.field.field_data.suggested" value="@{{ field.field_data.value_a}}" > @{{ field.field_data.value_a }} <br>
<input type="radio" name="@{{ form.form_id }}_@{{ $index }}" ng-model="$parent.field.field_data.suggested" value="@{{ field.field_data.value_b }}"> @{{ field.field_data.value_b }}
</div>
</td>
</tr>
/table>
此处此处生成2组/对单选按钮,但只有最后一组获得默认值。即使使用ng-checked甚至没有$ parent。
其他信息,field_suggested与value_a或value_b具有相同的值。您可以看到单选按钮低于2 ng重复。我正在使用laravel刀片,这个html文件在一个模态中。我删除了表单中与该问题无关的一些html数据和属性。
感谢任何帮助。
谢谢!
答案 0 :(得分:0)
你似乎混合了很多东西。我复制了你的代码,创建了一个plunker,发现无线电组的名称实际上并不是form_id _ {{$ index}},而是将整个对象作为字符串。我已经改变了代码希望它可以帮到你。 查看代码here 问题在于你的组名,为什么你在名字中使用@。请删除它们,它应该工作正常。另请注意,name属性的值中没有特殊字符。
name="{{ form.form_id }}_{{ $index }}"