-1

我想删除一个由 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'}
        }
    }
);
});
4

1 回答 1

0

因为你的@id 是未定义的。

你在哪里为它赋值?我认为你没有。

所以你需要改变它

params: {id: $scope.YourId}

你需要传递任何值$sope.YourId

而且您还需要$sope在工厂中定义app.factory('Inventory', function($resource, $http,**$scope**) {

于 2014-02-28T08:25:55.707 回答