$ http.delete在foreach中没有工作

时间:2016-03-15 11:30:19

标签: angularjs angular-promise

我正在尝试从网格中删除行。在foreach函数内部,我需要调用$ http.delete来从数据库中删除。下面是我在另一个类似问题的帮助下编写的代码。请指出什么是错的。它达到了$ http.delete,但没有拨打电话。

var promises = [];

angular.forEach($scope.gridApi.selection.getSelectedRows(),
  function (data, index) 
  { $scope.gridOptions.data.splice($scope.gridOptions.data.lastIndexOf(data), 1);
    promises.push($scope.deleteRow(data._id));            
  }
); 

$q.all(promises).then(
function success(){alert("Delete successful");},
function failure(err){alert("Error in deletion");}
);

$scope.deleteRow = function(rowId)
{
    return $http.delete('http://localhost:8080/deleterecords/' + data._id);
}

1 个答案:

答案 0 :(得分:0)

deleteRow功能中,您无权访问data。 您应该将代码更改为:

$scope.deleteRow = function(rowId) {
    return $http.delete('http://localhost:8080/deleterecords/' + rowId);
}