使用splice()时AngularJS错误

时间:2014-09-18 07:12:42

标签: jquery angularjs uncaught-typeerror

我试图从scopejs中的范围和数据库中删除记录但是我收到错误。虽然我的记录正在删除但未在范围内删除并显示错误。

  

未捕获的TypeError:无法读取未定义的属性'charAt'

这是我的代码。

<a ng-click="deleteUser(user.id)">Delete</a>
$scope.deleteUser = function (uid) {
    if (confirm("Are you sure to delete this?")) {
        $http.post("functions.php?type=deleteUser&uid=" + uid).success(function (data) {
            $scope.users.splice(uid, 1);
        });
    }
};

2 个答案:

答案 0 :(得分:0)

您可以尝试在user之前获取post,然后

var index = $scope.users.indexOf(user);
$scope.users.splice(index, 1);

答案 1 :(得分:0)

你可以做以下事吗: 1.当你在init方法中第一次绑定数据时。

var bindToGrid=function(){
  $scope.usersData=data;//from api
 }

2。在删除时,您正在调用正确的api。

 $scope.deleteUser = function (uid) {
  if(confirm("Are you sure to delete this?")){
  $http.post("functions.php?type=deleteUser&uid="+uid).success(function(data){
    $scope.users.splice(uid, 1);
  });
 }
 };

3。但是在成功之后你必须再次调用init,如下所示

 $scope.deleteUser = function (uid) {
  if(confirm("Are you sure to delete this?")){
  $http.post("functions.php?type=deleteUser&uid="+uid).success(function(data){
    $scope.bindToGrid();
  });
 }
 };

这将重新绑定到您的模型对象并反映更改。