URL 参数作为正文参数传递给 Angular 资源

URL param passed as body param with Angular Resource

我正在使用 Angular (1) 和 $resource。我的一个 API 请求失败了,因为 URL 参数被作为请求正文参数传递。为什么会这样?

/** @ngInject */
module.exports = function ($resource, API_URL) {
  return $resource(`${API_URL}/users`, null, {
    deactivateUser: {
      url: `${API_URL}/users/deactivate/:id`,
      method: 'put'
    },
    ...
  })
}

此处使用:

User.deactivateUser({id})

根据 docs,您应该将 {id: '@id'} 指定为 $resource 函数的第二个参数。对于非 GET 请求,这将采用 id 参数并将其放入 url 字符串,而不是请求正文。

这是 fiddle