AngularJS $资源PUT操作无法解压ID

问题描述:

我是AngularJS的新手,所以请裸机。

我似乎无法得到控制器的$resource函数的“id”。这是有问题的代码...

控制器:

$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回报:

http://127.0.0.1:8000/api/user_extra/ 404(未找到)

硬编码像ID:

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

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

+0

您确定'$ scope.user_extra_details'对象具有'_id'属性吗? – georgeawg

+0

hmm ...将这行改为:'''return $ resource('/ api/user_extra/1 /',{id:'@id'},{'''似乎已经完成了,非常感谢! – user3383575

嗯...改变这一行:

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

似乎已经做到了。非常感谢你!

如果默认参数值与@前缀,则该参数值将被从相应的属性对数据对象萃取。例如,如果defaultParam对象为{someParam: '@someProp'},则someParam的值将为data.someProp

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

欲了解更多信息,请参阅AngularJS $resource API Reference