我的问题是:
我在带有复选框的表格中有一个列表Student
。现在,我想选中此框并将列表Student
发送到API。但是我无法得到他们。
我的代码在这里!
HTML:
<tr dir-paginate="student in ClassStudents | filter: search | itemsPerPage: 20">
<td><input type="checkbox" ng-model="student.selected"></td>
<td style="display: none;">{{student.Class.ClassId}}</td>
<td>[Another property]</td>
</tr>
AngularJS:
function selectStudents(){
var listStudent = [];
$scope.ClassStudents.forEach(function(student){
if(student.checked){
var studentClone = angular.copy(student);
listStudent.push(studentClone)
}
})
return listStudent;
}
$scope.upGrade = function(){
$http({
method: 'POST',
url: host + "/api/APIClassStudents/Post",
data: {
Students: selectStudents(),
ClassId: 2
}
}).then(function(response){
alert("Upgrade Successful!")
})
}
可以正常连接到WEB API,响应Upgrade success!
,但没有任何变化。当我调试时,我认为selectStudent()[现在是一个数组]是count =0。而且我不知道为什么。
感谢您的帮助!
答案 0 :(得分:1)
问题是,您正在HTML中使用selected
,并在控制器中访问checked
。只需在upGrade
函数中使用以下过滤器即可代替selectStudents()
。
data: {
Students: $scope.ClassStudents.filter(student => student.selected),
ClassId: 2
}
过滤器功能将返回所有选定的学生。