我有一个工厂,它返回我的文章模型的$资源:
angular.module('ADI.Resources').factory("Articles", ['$resource', function($resource) {
return $resource('/api/v1/article/:articleId', {
articleId: '@_id',
_shop: window.user._shop
}, {
update: {
method: 'PUT'
}
});
}]);
GET
,POST
和DELETE
运行良好,但不是更新(PUT)。这是我使用的代码:
Articles.update({articleId: '300000000000000000000001'}, function(article){
console.log(article);
});
正在提出此请求:
PUT http://localhost:3000/api/v1/article?_shop=100000000000000000000001
而不是:
PUT http://localhost:3000/api/v1/article/300000000000000000000001?_shop=100000000000000000000001
知道为什么在执行更新时没有填充:articleId参数?谢谢!
答案 0 :(得分:7)
在评论中提到False时,articleId参数位于请求内容中。所以我做了一个小技巧,让它也在URI上。
angular.module('ADI.Resources').factory("Articles", ['$resource', function($resource) {
return $resource('/api/v1/article/:articleId', {
articleId: '@_id',
_shop: window.user._shop
}, {
update: {
method: 'PUT',
params: {
articleId: "@articleId"
}
}
});
}]);
答案 1 :(得分:1)
我遇到了同样的问题,这里的问题出在以下几行:
articleId: '@_id',
该行应该是:
articleId: '@articleId',
articleId不需要再次定义。