У меня есть конечная точка, которая выполняет PUT, конечная точка разработана таким образом, что при добавлении нового пользователя она удалит пользователей, которых вы не указали в теле JSON. Поэтому, если я отправлю запрос, содержащий 1, и есть 1 и 2, он сохранит 1 и удалит 2. Однако, из-за этого это вызвало проблему в моем GUI.
У меня есть выпадающие списки, в которых используется эта информация, и я хотел бы, чтобы она сохранялась, а не удалялась. Поэтому я имею в виду, что когда вы делаете обновление, оно не удаляет 2, а сохраняет 2 и добавляет 1. Мой код состоит из следующего:
var toAddUsers = [];
for (var i = 1; i <= 12; i++) {
var toPushAdd = {};
toPushAdd.userTypeId = i;
var toPushDelete = {};
toPushDelete.userTypeId = i;
if ($scope.originalUsers[i] !== $scope.updatedUsers[i]) {
if ($scope.originalUsers[i] == null) {
toPushAdd.userId = $scope.updatedUsers[i];
toAddUsers.push(toPushAdd);
} else if ($scope.updatedUsers[i] == null) {
toPushDelete.userId = $scope.originalUsers[i];
toDeleteUsers.push(toPushDelete);
} else {
toPushAdd.userId = $scope.updatedUsers[i];
toAddUsers.push(toPushAdd);
toPushDelete.userId = $scope.originalUsers[i];
toDeleteUsers.push(toPushDelete);
}
}
}
if (toAddUsers.length > 0) {
var addRequest = {};
addRequest.users = [];
for (var i = 0; i < toAddUsers.length; i++) {
var user= {};
user.userTypeId = toAddUsers[i].userTypeId ;
user.userId = toAddUsers[i].userId ;
addRequest.users.push(user);
}
var addUrl = "api/example/" + $scope.targetEntity.exampleId + "/users";
$http.put(addUrl, addRequest.users)
.then(function (response) {
});
}
Я предполагаю, что лучше Решением было бы сохранить информацию, сохранив ее каким-либо образом, однако AngularJS для меня в новинку, поэтому я не совсем уверен, как go узнать об этом или где ее хранить. Любая помощь будет оценена. Я должен отметить, что в настоящее время этот метод работает и обновляет выпадающие списки, но не так, как мне бы хотелось.