我有一个执行PUT的终结点,该终结点是经过设计的,因此,当您添加新用户时,它将删除JSON正文中未指定的用户。因此,如果我发送包含1的请求,并且同时包含1和2,它将保留1并删除2。但是,由于这在我的GUI中造成了问题。
我有使用此信息的下拉列表,我希望它保留信息而不是删除它。因此,我的意思是,当您执行更新时,它不会删除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对我来说是新事物,所以不太确切地知道如何处理或将其存储在哪里。任何帮助将不胜感激。我应该注意当前该方法正在工作,并且确实会更新下拉列表,但并不是我想要的那样。