保留原始信息并为上述信息添加新值

时间:2020-01-14 12:29:21

标签: angularjs

我有一个执行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对我来说是新事物,所以不太确切地知道如何处理或将其存储在哪里。任何帮助将不胜感激。我应该注意当前该方法正在工作,并且确实会更新下拉列表,但并不是我想要的那样。

0 个答案:

没有答案