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回报:
硬编码像ID:
return $resource('/api/user_extra/1/', { id: '@_id' }, {
工作正常。任何帮助深表感谢!!
答
嗯...改变这一行:
return $resource('/api/user_extra/:id/', { id: ̶'̶@̶_̶i̶d̶'̶ '@id' }, {
似乎已经做到了。非常感谢你!
如果默认参数值与@前缀,则该参数值将被从相应的属性对数据对象萃取。例如,如果defaultParam
对象为{someParam: '@someProp'}
,则someParam
的值将为data.someProp
。
在上述问题中,当属性的名称实际上是id
时,PUT操作试图提取数据对象的属性_id
。
欲了解更多信息,请参阅AngularJS $resource API Reference。
您确定'$ scope.user_extra_details'对象具有'_id'属性吗? – georgeawg
hmm ...将这行改为:'''return $ resource('/ api/user_extra/1 /',{id:'@id'},{'''似乎已经完成了,非常感谢! – user3383575