Я написал блок кода, который позволяет пользователю проверять или снимать флажки с сущностей, которые будут добавлены или удалены через веб-сервисы. Моя функция добавления, кажется, работает правильно и предоставляет возможность добавлять несколько объектов. Тем не менее, моя функция удаления не работает так же. Он не удаляется каждый раз и может удалять только по одному за раз. Я испытываю затруднения, поскольку код фактически совпадает с надстройкой, поэтому я не знаю, связана ли проблема с AngularJS или, возможно, мой веб-сервис работает неправильно.
Редактировать: Я действительно заметил, что цикл for проходит через все это, но не выбирает правильный идентификатор, он всегда начинается с первого.
var toDeleteService = [];
for (var i = 0; i < $scope.siteServices.length; i++) {
if ($scope.siteServices[i].chosen != $scope.siteServices[i].origChosen) {
if ($scope.siteServices[i].chosen == true) {
toAddService.push(i);
}
else {
toDeleteService.push(i);
}
}
}
if (toDeleteService.length > 0) {
var deleteRequest = {};
deleteRequest.services = [];
for (var i = 0; i < toDeleteService.length; i++) {
var parentServiceName = $scope.siteServices[i].parentServiceName;
var j = 0;
for (; j < deleteRequest.services.length; j++) {
if (deleteRequest.services[j].parentServiceName == parentServiceName) {
break;
}
}
if (j == deleteRequest.services.length) {
deleteRequest.services[j] = {};
deleteRequest.services[j].parentServiceName = parentServiceName;
deleteRequest.services[j].subservices = [];
}
var service = {};
service.serviceId = $scope.siteServices[i].serviceId;
deleteRequest.services[j].subservices.push(service);
}
var deleteUrl = "api/sites/" + $scope.targetEntity.siteId + "/services/" + service.serviceId;
$http.delete(deleteUrl)
.then(function (response) {
});
}