【问题标题】: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 而不是 PUTRFC 5789
    • 非常感谢,对我很有用:)
    猜你喜欢
    • 1970-01-01
    • 2019-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-06
    • 1970-01-01
    相关资源
    最近更新 更多