Please help me understand: why angularjs not delete array of objects
$scope.removeAll = function(
all = _.pluck($scope.uploader.queue, 'file');
all.length && HTTPStorage.query_delete(all,
function () {
$scope.uploader.clearQueue();
delay.resolve();
});
)
service:
services.factory('HTTPStorage', ['$resource', function($resource){
return $resource('/api/v1/documents/storage/:id', {'id': '@id'},{
'query_delete': {
method: 'DELETE',
isArray: true
}
});
}]);
objects array:
[ {
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}, {}]
angular sent to server:
/api/v1/documents/storage?0=%7B%22webkitRelativePath%22:%22%22,%22lastModifiedDate%22:%222014-08-19T14:11:17.000Z%22,%22name%22:%22Screenshot+from+2014-08-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:%22storage%2F0ccf78bc333a11e48c4bb8030570fabc%2FScreenshot+from+201 ..... and more symbols
how send to server array of objects to delete those objects
if use 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
You can send the ids for delete via queryString, pretty much like this:
http://localhost:3030/api/books?TENANTID=xxx&q=%5B1,3%5D
%5B equals to [
%5D equals to ]
so the untransformed url should be like:
http://localhost:3030/api/books?TENANTID=xxx&q=[1,3]
In you angular code, it can be write like:
...
.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