【问题标题】:$resource delete method passing params as query string$resource 删除方法将参数作为查询字符串传递
【发布时间】:2017-12-14 03:37:08
【问题描述】:

我正在尝试使用 $resource 实现 CRUD,但在 POST、PUT 和 GET 中没有发现任何问题。但是在删除方法上,参数作为查询字符串传递。

我的服务:

   service.Assigndepart = $resource(CONFIG.wsurl + '/employee/assign/depart',null, {
            update: {
                method: 'PUT'
            },
            remove:{
              method: 'DELETE'
            }
        });

并将我的控制器称为

Assigndepart.remove(params, function(success), function(error));

我的 url 与查询字符串一起传递为 ?employee=1234&depart=456。 可以帮忙吗

【问题讨论】:

    标签: angularjs ngresource


    【解决方案1】:

    基本上看看如果你进入Html apis in form标签的方法类型你会看到只支持get和post方法,这表明使用post和get我们可以做我们想做的一切其他的只是良好的约定和一些代码优化(如 put 方法)。delete 方法与 get 方法类似,它始终包含参数作为它的参数,你无能为力。如果你想删除它,你必须使用仅使用 post 或 put 请求的结构,或者您仍然可以使用 delete 方法,并在两端即应用程序服务器和前端进行一些加密和解密。

    【讨论】:

      【解决方案2】:

      根据Angular $resource 文档,没有主体的操作方法需要使用以下参数调用:

      Resource.action([parameters], postData, [success], [error])
      

      因此,您将 postData 作为 DELETE 操作的参数传递。控制器上的正确调用是:

      Assigndepart.remove({}, params, function(success), function(error));
      

      【讨论】:

        猜你喜欢
        • 2016-08-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多