I have this delete method with $resource for my angularJS service,
return $resource(apiUrl, {}, {
delete: {
url: apiUrl+ ":itemId",
params: { itemId: "@itemId" },
method: 'DELETE'
}
});
However while trying to call the delete method, the request which sends from the service is without itemId.
dataService.delete({ itemId: itemId}, {})
.$promise
.then((data) => {
// Statements
})
.catch((error) => {
// Logging
})
.finally(() => {});
The URL supposed to call is https://url:someport/v1.0/items/{itemId} However the current url is https://url:someport/v1.0/items
Is there a way to get this doe using the current $resource code?
This code sends the proper url:
angular.module("app",['ngResource'])
.controller("ctrl",function($scope,$resource){
var url = "//requestbin.fullcontact.com/1ooe8eb1";
var dataService = $resource(url, {itemId: "@itemId"}, {
delete: {
url: url+"/items/:itemId",
params: { itemId: "@itemId" },
method: 'DELETE'
}
});
$scope.delete = function() {
var res = dataService.delete({itemId:77});
res.$promise.finally(function(){
$scope.result="DONE";
});
};
});
<script src="//unpkg.com/angular/angular.js"></script>
<script src="//unpkg.com/angular-resource/angular-resource.js"></script>
<body ng-app="app" ng-controller="ctrl">
<button ng-click="delete()">Delete Item</button>
{{result}}
</body>
The response is blocked by the browser because of CORS but inspection at:
https://requestbin.fullcontact.com/1ooe8eb1?inspect
shows that the URL was formed correctly.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With