假设我有一个这样设置的资源:
resource = $resource( "http://foo.com/service/:type/:id",{},{save: {method:'PUT',params: {type:'@type',id: '@id'}}} ); resource.save({type:'user',id:14,name:'Bob Dole'});
有什么办法可以防止类型和身份被提交作为请求正文的一部分,只是在PUT有效负载中发送名称?我不控制我提交的API,似乎不喜欢我发送的额外的参数。
谢谢!
更新 – 10/25/13 – 13:38
resource的文档说:
If the parameter value is prefixed with @ then the value of that parameter is extracted from the data object (useful for non-GET operations).
这意味着这应该从数据中删除参数:
resource.save({type:'@user',id:'@14',name:'Bob Dole'});
但它似乎不起作用还在亏损
使用第一个参数为您的网址模板参数,并将您的帖子数据放在第二个参数,如下所示:
原文链接:https://www.f2er.com/angularjs/144544.htmlresource.save({id:14,type:'user'},{name:'Bob Dole'});
这是Angular docs显示功能签名的行:
非GET“类”操作:Resource.action([parameters],postData,[success],[error])
这是plunker的一个例子
您获得的请求在主体中没有url参数:
Request URL:http://run.plnkr.co/JAOqZqW6RSywatUM/badUrl/user/14 Request Method:PUT Request Payloadview source {name:Bob Dole}