角度电台按钮多种形式

时间:2016-10-11 17:48:54

标签: angularjs radio-button

我在单选按钮上度过了一段时间。周二快乐。

我有多个名称,每个名称的表单,以及选择名称作为"主要名称"的能力。每个名称都可以独立编辑和提交。当一个名字被选为"主要" (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>

1 个答案:

答案 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重复表单。