$resource PUT 操作不提取 id

$resource PUT operation not extracting id

我似乎无法从控制器获得一个 "id" 到 $resource 函数。这是有问题的代码...

控制器:

$scope.update_user_extra = function () {
    UserExtraResource.update($scope.user_extra_details, function (data) {
        $scope.user_extra_details = data;
        $scope.user_extra_details = {mobile:data.mobile,
                                     landline:data.landline,
                                     position:data.position, 
                                     notes:data.notes, 
                                     language:data.language};
    });
};

资源:

module.exports = function ($resource) {
    return $resource('/api/user_extra/:id/', { id: '@_id' }, {      
        details: {method: 'GET', url: '/api/user_extra/details'},
        update: {method: 'PUT'}
    });
};  

GET 工作正常,但自定义 PUT returns:

http://127.0.0.1:8000/api/user_extra/ 404 (Not Found)

像这样对 id 进行硬编码:

return $resource('/api/user_extra/1/', { id: '@_id' }, {  

工作正常。任何帮助深表感谢!!

hmm ... changing this line to:

return $resource('/api/user_extra/:id/', { id: ̶'̶@̶_̶i̶d̶'̶ '@id' }, {

seems to have done it. Thank you very much!

如果默认参数值以@为前缀,则该参数的值将从数据对象上的相应属性中提取。例如,如果 defaultParam 对象是 {someParam: '@someProp'} 那么 someParam 的值将是 data.someProp.

在上述问题中,PUT 操作试图提取数据对象的 属性 _id,而 属性 的名称实际上是 id

有关详细信息,请参阅 AngularJS $resource API Reference