【发布时间】:2017-09-14 16:33:05
【问题描述】:
我试图为一个班级创建标记列表。当我为每个学生输入分数时, 推送事件有效。每次更改时,都会在数组中创建重复项。我该如何解决这个问题?
查看
<tr ng-repeat="student in tabledata">
<td>{{student.RollNumber}}</td>
<td>{{student.StudentName}}</td>
<td ng-repeat="item in Allsubjects">
<div ng-repeat="enable in student.subjectArray">
<input type="text"
class="form-control"
ng-model="SubjectMark"
ng-change="internal(item.Id,student.StudentId,SubjectMark)"
ng-disabled="item.Elective ==='Optional'&& enable.opted != item.Id"
required>
</div>
</td>
</tr>
JS
angular.element(document).ready(function() {
$scope.ArrayMarks = [];
$scope.ArrayMarks.push({
'subject': '',
'student': '',
'mark': '',
});
$scope.internal = function(Sub, Std, score) {
if ($scope.ArrayMarks[0].subject === '' && $scope.ArrayMarks[0].student === '') {
$scope.ArrayMarks.push({
'subject': Sub,
'student': Std,
'mark': score,
});
$scope.ArrayMarks.splice(0, 1);
} else {
for (var i = 0; i < $scope.ArrayMarks.length; i++) {
if ($scope.ArrayMarks[i].subject === Sub && $scope.ArrayMarks[i].student === Std) {
$scope.ArrayMarks[i].mark = score;
} else {
$scope.ArrayMarks.push({
'subject': Sub,
'student': Std,
'mark': score,
});
}
}
}
};
【问题讨论】:
标签: javascript angularjs arrays angularjs-ng-repeat angularjs-ng-change