我有以下资源定义:
myservices.factory('User', ['$resource',
function($resource){
return $resource('/user/:screenName', {}, {
whoami: {
url: '/user',
method: 'GET',
isArray: false,
params: {
op: 'whoami'
}
},
query: {
url: '/user',
method: 'GET',
isArray: true
},
get: {
method: 'GET',
isArray: false
},
update: {
method:'GET',
params: {
op: 'update'
},
isArray: false,
},
delete: {
method:'GET',
params: {
op: 'delete'
},
isArray: false,
}
});
}]);
我认为它会将 screenName
作为 URL 的一部分传递。不幸的是,这不会发生。
Controller 代码如下:
var user = new User();
user.firstname = $scope.selectedUser.firstName;
user.lastname = $scope.selectedUser.lastName;
user.screenName = $scope.selectedUser.screenName;
user.password1 = $scope.selectedUser.password1;
user.password2 = $scope.selectedUser.password2;
user.roles = $scope.selectedUser.roles;
user.maximalCalories = $scope.selectedUser.maximalCalories;
user.$update();
实际上它通过了:
GET http://localhost:8080/user?op=update HTTP/1.1
Host: localhost:8080
...
Accept: application/json, text/plain, */*
...
Referer: http://localhost:8080/app/index.html
即除了显式参数外,它不传递任何参数。
更新
如果我这样做
User.$update(
{
firstname : $scope.selectedUser.firstName,
lastname : $scope.selectedUser.lastName,
screenName : $scope.selectedUser.screenName,
password1 : $scope.selectedUser.password1,
password2 : $scope.selectedUser.password2,
roles : $scope.selectedUser.roles,
maximalCalories : $scope.selectedUser.maximalCalories,
}
);
我得到一个异常TypeError: User.$update is not a function
更新 2
显然,Angular 向对象添加了函数 $update
,向类添加了函数 update
,如果我在 LHS
处有对象,它将仅通过 POST...
最佳答案
您没有将 screenName
传递给资源。应该是:
user.$update({screenName: $scope.selectedUser.screenName});
关于javascript - ngResource 不传递参数 - 如何调试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34578353/