我的休息api将DELETE请求填充到以下网址
/api/users/{slug}
因此,通过向指定的用户(slug)发送删除,用户将被删除。这里是服务代码:
angular.module('UserService',['ngResource']).factory('User',function($resource){ var User = $resource('/api/users/:id1/:action/:id2',//add param to the url {},{ delete_user: { method: 'DELETE',params: { id1:"@id" } },update: { method: 'PUT',params: { id1:"@id" } } }); return User; });
user.$delete_user({id:user.id},function(){},function(response){});
然而,请求似乎被发送到错误的URL。
/api/users?id=4
params是您的操作中的默认请求参数的对象。如果你想要url参数,你必须在第二个参数中指定它们,如下所示:
angular.module('UserService',//add param to the url {id1:'@id'},{ delete_user: { method: 'DELETE' } }); return User; });
这适用于:
// user has id user.$delete_user(function(){ //success },function(){ // error });
要么
var data = {id:'id_from_data'}; User.delete_user({},data);
要么
var params = {id1:'id1_from_params'}; User.delete_user(params);
我做了一个plnkr-example – 你必须打开你的控制台,以验证DELETE请求是正确的。
请参阅Angular resource documentation中的parameterDefaults。