【问题标题】:why must set update: { method: 'PUT' } in $resource angularjs?为什么必须在 $resource angularjs 中设置 update: { method: 'PUT' }?
【发布时间】:2015-11-25 10:32:36
【问题描述】:
我在meanjs中有示例代码,我不明白为什么他们必须设置第三个参数
update: {
method: 'PUT'
}
这是完整的代码:
'use strict';
//Articles service used for communicating with the articles REST endpoints
angular.module('articles').factory('Articles', ['$resource',
function ($resource) {
return $resource('api/articles/:articleId', {
articleId: '@_id'
}, {
update: {
method: 'PUT'
}
});
}
]);
提前致谢。
【问题讨论】:
标签:
javascript
angularjs
meanjs
【解决方案1】:
如果您特别查看 返回 部分下的 docs,您会看到 $resource 服务将返回:
一个资源“类”对象,其中包含默认资源操作集的方法,可以选择使用自定义操作进行扩展。默认集包含以下操作:
{'get': {method:'GET'},
'save': {method:'POST'},
'query': {method:'GET', isArray:true},
'remove': {method:'DELETE'},
'delete': {method:'DELETE'} };
它进一步指出:
save、remove 和 delete 操作都可以作为带有 $ 前缀的方法使用。
所以$save、$remove、$delete 可用,但没有 $update。这就是示例中的服务具有以下行的原因:
...
'update': { method: 'PUT'},
...
它旨在扩展这些默认操作集,以便 $update 可用作对象上的方法,并且它将使用 HTTP PUT 方法而不是像其他方法一样的 GET/POST/DELETE。
注意:上面的答案是从previous question I answered 中提取的,但我已经隔离了你应该在这里关注的部分
【讨论】:
-
如果您对对象进行部分更新以节省带宽,您也可以使用 PATCH 而不是 PUT。 RFC 5789
-