我似乎无法得到一个" 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返回:
将id硬编码为:
return $resource('/api/user_extra/1/', { id: '@_id' }, {
工作正常。任何帮助深表感谢!!
答案 0 :(得分:0)
嗯......将此行改为:
return $resource('/api/user_extra/:id/', { id: ̶'̶@̶_̶i̶d̶'̶ '@id' }, {
似乎已经做到了。非常感谢你!
如果默认参数值以@为前缀,则该参数的值将从数据对象上的相应属性中提取。例如,如果defaultParam
对象为{someParam: '@someProp'}
,那么someParam
的值将为data.someProp
。
在上面的问题中,当属性名称实际为_id
时,PUT操作试图提取数据对象的属性id
。
有关详细信息,请参阅AngularJS $resource API Reference。