使用id按资源删除对象

时间:2014-02-28 07:56:56

标签: angularjs angularjs-resource

我想删除id选择的对象,但是当我按“删除”时,所有对象都被删除。

如果我指定Inventory.drop({id: 2}它有效,但使用Inventory.drop({id: '@id'})则不然。为什么呢?

$scope.deleteInv = function () {
    Inventory.drop();
 };

我的模板:

<td><a href="" ng-click="deleteInv()">X</a></td>

这是我的工厂:

app.factory('Inventory', function($resource, $http) {
return $resource('http://someweb.com/api/v1/inventory/:id', {id: '@id'},
    {
        update: {
            method: 'POST',
            params: {id: '@id'},
            isArray: false
        },
        save: {
            method: 'PUT'
        },
        query: {
            method: 'GET',
            params: {id: '@id'},
            isArray: false
        },
        create: {
            method: 'POST'
        },
        drop: {
            method: 'DELETE',
            params: {id: '@id'}
        }
    }
);
});

1 个答案:

答案 0 :(得分:0)

因为你的@id未定义。

您为此分配值?我想你不会。

所以你需要改变那个

params: {id: $scope.YourId}

您需要传递$sope.YourId

的任何值

您还需要在工厂$sope

中定义app.factory('Inventory', function($resource, $http,**$scope**) {