我在单选按钮上度过了一段时间。周二快乐。
我有多个名称,每个名称的表单,以及选择名称作为"主要名称"的能力。每个名称都可以独立编辑和提交。当一个名字被选为"主要" (1)其他设置为0。
在函数updatePrimary()中,我将正确名称的primary_name值设置为1,其余设置为0. 但其他单选按钮不会取消选择其单选按钮(好吧,应该只选择其他一个)。
像这样:
<ng-include src="'app/names/__edit.html'" ng-repeat="name in names track by $index"></ng-include>
<!-- __edit.html -->
<form name="names[$index]">
<input name="primary_name" class="form-control" type="radio" ng-click="updatePrimary($index)" ng-model="name.primary_name" ng-value="name.primary_name" ng-checked="<% name.primary_name == 1 %>"/>
</form>
我不明白的是我将name.primary_name绑定到按钮的位置,为其提供了要检查的条件(== 1),那么为什么我更新模型时显示的不是更新?重申一下,它在模型中是正确的,这是一个UI /绑定问题。
需要注意的另一件事 - 我有一个要保存的按钮,当表单变脏时启用了该按钮。选择单选按钮不会触发此操作。按钮是这样的:
<button class="name-save" ng-disabled="names[$index].$pristine" ng-click="save($index)">Save</button>
答案 0 :(得分:0)
试试这个:
<ng-include src="'app/names/__edit.html'" ng-repeat="name in names track by $index"></ng-include>
<!-- __edit.html -->
<form name="names[$index]">
<input id="radio_{{$index}}" name="primary_name" class="form-control" type="radio" ng-click="updatePrimary($index)" ng-model="name.primary_name" ng-value="name.primary_name" ng-checked="<% name.primary_name == 1 %>"/>
在无线电输入字段上使用动态ID可以解决问题。
另请注意,ng-repeat
不适用于表单。表格不会重复。您必须使用ng-form
重复表单。