Angular ngRepeat - 如何使多个对象包含单选按钮

时间:2017-06-07 10:20:41

标签: javascript angularjs

我正在对客户端Ionic应用程序进行一些更新,但仍坚持使用某些绑定。

有一个表单包含一些字段,包括几个单选按钮。

E.g。

<div class="fields">
    <input ng-model="student.name" type="text" name="student_name" id="name" />

    <input ng-model="student.has_booked" type="radio" checked="checked" name="made_booking" id="made_booking_yes" value="1" />
</div>

更新请求是有一个按钮,该按钮复制第一个表单中的详细信息,并将其添加到一个数组中,其中详细信息可用于其他学生,因为它们通常相似。

要做到这一点,我有一个调用此方法的按钮:

$scope.additionalStudents = []; // <-- for context of question

$scope.duplicateStudentDetails = function() {
    var firstStudent = angular.copy($scope.student);
    $scope.additionalStudents.push(firstStudent);
}

然后在我看来:

<div class="fields" ng-repeat="(key, student) in additionalStudents track by $index">
    <input ng-model="student.name" type="text" name="student_name" id="name" />

    <input ng-model="student.has_booked" type="radio" checked="checked" name="made_booking" id="made_booking_yes" value="1" />
</div>

我遇到的问题是名称是独立更改的,但复选框始终会影响原始学生。我猜这是因为名字属性......

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您的问题可能有两种解决方案。

如果您的情况只是为了显示状态而不是更改预订状态

然后,删除name属性

如果您希望将来更改预订状态

最好让input of type checkbox具有不同的名称