angularjs – Angular.js使用参数删除资源

前端之家收集整理的这篇文章主要介绍了angularjs – Angular.js使用参数删除资源前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的休息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

所以参数实际上是丢失,因此我得到一个405方法不允许。有没有机会发送删除请求在我的api的风格?

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。

猜你在找的Angularjs相关文章