如何在AngularJS中正确地从范围拼接用户?

时间:2017-06-08 02:19:53

标签: javascript angularjs

我正在尝试从列表中删除用户。出于某种原因,拼接不会从列表中删除用户。任何人都可以帮我解决这个问题。我从后端API调用中获取用户,并且当它删除该特定用户时,我正在使用PUT方法来更新它。

app.js

app.controller('MyCtrl', function($scope, $window) {

    $scope.inactive = true;

    $scope.confirmedAction = user => {
        const index = $scope.userInfo.users.indexOf(user);
        $scope.userInfo.users.splice(user, 1);
        $window.location.href = '#/user';
    };

});

2 个答案:

答案 0 :(得分:1)

你应该根据索引

进行拼接
$scope.userInfo.users.splice(index, 1);

根据文档Array.prototype.splice

  

开始更改数组的索引(原点为0)。如果大于数组的长度,实际的起始索引将设置为数组的长度

只是为了展示POC

var array = ['val1','val2','val3']
var index = array.indexOf('val2')
array.splice(index,1);

console.log(array);
//['val1','val3']

答案 1 :(得分:0)

从注释中我注意到:

user是一个对象,函数的参数user不是同一个实例!

还假设您在id对象中有user属性。

使用Array.findIndex

app.controller('MyCtrl', function($scope, $window) {
        $scope.inactive = true;
        $scope.confirmedAction = function (user) {
           var index = $scope.userInfo.users.findIndex(u=> u.id == user.id);
          if(index>=0) {
              $scope.userInfo.users.splice(user, 1);
              $window.location.href = '#/user';
          }
        }
    });