angularjs DELETE对象数组

时间:2014-09-03 07:26:31

标签: angularjs rest restful-url angularjs-resource

请帮助我理解:为什么angularjs不能删除对象数组

$scope.removeAll = function(
    all = _.pluck($scope.uploader.queue, 'file');

    all.length && HTTPStorage.query_delete(all,
        function () {
            $scope.uploader.clearQueue();
            delay.resolve();
        });
)

服务:

services.factory('HTTPStorage', ['$resource', function($resource){
        return $resource('/api/v1/documents/storage/:id', {'id': '@id'},{
            'query_delete': {
                method: 'DELETE',
                isArray: true
            }
        });
    }]);

对象数组:
[{

file: "storage/dave-macvicar-1130x1130.jpg",  
id: 377,  
is_external: false,  
size: 272543,  
status: "unknown",  
type: "image/jpeg",  
upload_type: 1,  
uploaded: "2014-09-03" }, {...same objects, with different id}, {}]  

发送到服务器的角度:
/api/v1/documents/storage?0=%7B%22webkitRelativePath%22:%22%22,%22lastModifiedDate%22:%222014-08-19T14:11:17.000Z%22,%22name%22:%22Screenshot+从2014年8月19日+ + 18:11:16.png%22%22type%22:%22image%2Fpng%22%22size%22:607898,%22id%22:381,%22upload_type%22:1 ,%22user%22:%22%D0%A8%D0%B8%D1%80%D0%BE%D0%BA%D0%BE%D0%B2 +%D0%90%D0%BB%D0%B5%D0 %BA%D1%81%D0%B5%D0%B9 +%D0%A1%D0%B5%D1%80%D0%B3%D0%B5%D0%B5%D0%B2%D0%B8%D1%87 %22,%22file%22:%22存储%2F0ccf78bc333a11e48c4bb8030570fabc%2FScreenshot +来自+ 201 .....更多符号

如何发送到服务器对象数组以删除那些对象
如果使用curl all normal:

curl -X DELETE -H 'Content-Type: application/json' http://127.0.0.1:8000/api/v1/documents/storage -d '[{"id": 330}, {"id": 333}]' -u user:pass

1 个答案:

答案 0 :(得分:1)

您可以通过queryString发送要删除的ID,非常类似:

http://localhost:3030/api/books?TENANTID=xxx&q=%5B1,3%5D

%5B等于[

%5D等于]

所以未转换的网址应该是这样的:

http://localhost:3030/api/books?TENANTID=xxx&q=[1,3]

在你的角度代码中,它可以写成:

...
.factory('BookEntity', ['$resource', function ($resource) {
    return $resource(
        '/api/books/:id',
        {id: '@id'},
        {
            create: {method: 'POST'},
            update: {method: 'PUT'}
        }
    );
}])

...
ScriptEntity.delete({q: JSON.stringify(bookIds)}) //bookIds is an array contains of Ids you want to delete