AngularJS Resource-PUT方法未获取id

AngularJS Resource-PUT方法未获取id,angularjs,angularjs-resource,Angularjs,Angularjs Resource,我有一个为我的文章模型返回$resource的工厂: angular.module('ADI.Resources').factory("Articles", ['$resource', function($resource) { return $resource('/api/v1/article/:articleId', { articleId: '@_id', _shop: window.user._shop }, { updat

我有一个为我的文章模型返回$resource的工厂:

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参数吗?谢谢

正如Fals在评论中提到的,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"
            }
        }
    });
}]);

我也有同样的问题,这里的问题是针对以下行:

articleId: '@_id',
这条线应该是:

articleId: '@articleId',

articleId不需要再次定义。

PUT应该将内容发送到请求中,而不是URL中!谢谢你的回复!它实际上是像你说的那样在内容中发送articleId。我想我在计划API时犯了一个错误。由于前一段时间的一些错误,我在angular git中犯了一个问题,他们说在这一部分不要使用任何参数:
{articleId:'@_id',_shop:window.user._shop},
当您不想在请求中全局提供它们时。。。当你没有在另一个请求中设置它,并且在你的模型中你有类似的东西,它会从模型中选择该值,你的url会变得疯狂。然而今天,我正在编写另一个服务,当我不使用它们时,它会发送吗?查询字符串:|而不是。。。