4

Altough searched everywhere, could not find a solution I have a problem with deleting the CORRECT row from the list.

For example I have below array:

$scope.rows = [{
        "ID": 12,
        "customer": "abc",
        "image": "abc.jpg",
},{
        "ID": 13,
        "customer": "klm",
        "image": "klm.jpg",
},{
        "ID": 14,
        "customer": "xyz",
        "image": "xyz.jpg",
}];     

Trying to delete the row where ID = 13 (ID will be received from node server) with the code as follow:

        Socket.on('delete', function( ID ) {

            var a = $scope.rows.indexOf(ID);
            $scope.rows.splice(a, 1)

        });

But this removes not the correct row.

How can I specify my parameter to delete the right row like:

remove rows("ID" = ID)

3 Answers 3

4

indexOf search substring in an array (and not in a relational array)

Try this:

var whatIndex = null;
angular.forEach($scope.rows, function(cb, index) {
  if (cb.ID === ID) {
     whatIndex = index;
  }
});

$scope.rows.splice(whatIndex, 1);
Sign up to request clarification or add additional context in comments.

1 Comment

This only works if you're trying to remove a single row. Anyone have a solution for removing multiple rows?
2

Remove an current selected item:

<a href="#" ng-click="remove($index)">Remove an item</a>                     //this one is dynamically generated link using ng-repeat

 $scope.remove = function (item) {
        $scope.retrieveddata.splice(item, 1);
    }

You can remove the current item using it's index.($scope .retreiveddata is my array list )

1 Comment

thanks for your answer. Your solution works with delete-buttons. I have NOT buttons but I receive an ID to delete the row(s) automatically.
0

pass id in this function

$scope.deleteCurrentId = function (ID) {
    for (var i = 0; i <= $scope.row.length; i++) {
        if ($scope.row[i].id == ID) {
            $scope.row.splice(i, 1);
        }
    }
};

or

$scope.deleteCurrentId = function (ID) {
    angular.forEach($scope.row, function (cb, index) {
        if (cb.id == ID) {
            $scope.row.splice(index, 1);
        }
    });
};

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.