Как я могу опубликовать объект списка в API, используя Checkbox и Angularjs? - PullRequest
0 голосов
/ 15 марта 2019

Моя проблема: у меня есть список Student в таблице с флажком.Теперь я хочу установить этот флажок и отправить список API Student.Но я не могу их получить.Мой код здесь!

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. И я не знаю почему.Спасибо за помощь!

1 Ответ

1 голос
/ 15 марта 2019

Проблема в том, что вы используете selected в HTML и обращаетесь к checked в вашем контроллере.Просто используйте фильтр, как показано ниже в вашей функции upGrade вместо selectStudents().

data: {
    Students: $scope.ClassStudents.filter(student => student.selected),
    ClassId: 2
}

Функция фильтра вернет всех выбранных студентов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...