2015-10-21 2 views
1

У меня есть рабочий апи на моем сервере, мой CRUD модуль работы просто отлично, и я могу получить, пост, говоря, удалить в моем сервере

У меня также есть модуль CRUD в моем угловом контроллере, который все работает отлично, за исключением функции удаления

Я использую ngResource $ сохранить, $ обновления, и $ удалить для манипулирования данных в клиенте всего пути к серверу

$ save и $ update работают нормально, но $ remove retu RNS мне ошибку: «не может прочитать свойство $ удалить неопределенных»

вот мой контроллер

$scope.findOne = function() { 
    $scope.post = Posts.get({ 
     postId: $routeParams.postId 
    }); 
}; 

$scope.update = function() { 
    $scope.post.$update(function() { 
     $location.path('posts/' + $scope.post._id); 
    }, function (errorResponse) { 
     $scope.error = errorResponse.data.message; 
    }); 
}; 

$scope.delete = function (post) { 
    if (post) { 
     post.$remove(function() { 
      for (var i in $scope.posts) { 
       if ($scope.posts[i] === post) { 
        $scope.posts.splice(i, 1); 
       } 
      } 
     }); 
    } 
    else { 
     $scope.posts.$remove(function() { 
      $location.path('posts'); 
     }); 
    } 
}; 

моя служба

angular.module('posts').factory('Posts', ['$resource', 
    function ($resource) { 
     return $resource('posts/:postId', { 
      postId: '@_id' 
     }, { 
      update: { 
       method: 'PUT' 
      } 
     }); 
    } 
]); 

странная вещь, обновление, работает, но delete не работает

Это из-за аргумента, который у меня есть в методе удаления?

вот мой взгляд

<div data-ng-controller="PostsCtrl"> 
<section data-ng-init="findOne()"> 
    <div data-ng-show="authentication.user._id === post.author._id"> 
     <a href="/#!/posts/{{post._id}}/edit">Edit</a> 
     <a href="#" data-ng-click="delete()">delete</a> 
    </div> 
</section> 
</div> 

Почему я не могу удалить сообщение и возвращает неопределенное значение? Is $ remove больше не используется в ngResource?

Какие методы доступны в ngResource?

ответ

1

Использование Posts.remove или $scope.post.$remove как

$scope.post.$remove(successCallBack,errorCallBack) //careful the item ($scope.post) will be removed. 

или

Posts.remove({},{postId: 'your post id'}) 

параметр $scope.delete метода не содержит ссылку на $resource

Смежные вопросы