我注意到虽然我在ngResource工厂中指定了“post”,但它将参数传递为GET。
用户工厂示例:
myApp.factory('facUser',['$resource', function ($resource) {
return $resource('/api/User/:route', {}, {
EditUser: { method: 'POST', isArray: true, params: { route: "EditUser", cid: '@cid', objEditUser: '@objEditUser' } }
})
}]);
这是编辑用户的调用:
$scope.Edited_User = facUser.EditUser({
cid: $stateParams.company_id, objEditUser: TempUserInfo
}, function success(data, status, headers) {
console.log(data);
}, function err(data, status, headers, config) {
});
因此,当我调用它时,出于某种原因,我看到我的所有值都在API的标题上传递,就像它是GET一样。
我无法弄清楚如何使用$ save()或如何将其作为表单发布/放置。
答案 0 :(得分:1)
params
关键字将解析任何路由变量,其余的将在请求查询中。
要在请求正文中发送值,您可以执行以下操作:
var user = new User( {
cid: $stateParams.company_id,
objEditUser: TempUserInfo
}) ;
user.$EditUser();
将您的资源更改为:
$resource('/api/User/:route', {}, {
EditUser: { method: 'POST', isArray: true, params: { route: "EditUser" } }
})
}]);
答案 1 :(得分:0)
myApp.factory('facUser',['$resource', function ($resource) {
return $resource('/api/User/:route', {}, {
EditUser: { method: 'POST', isArray: true, params: { route: '@route'} }
})
}]);
然后......
$scope.Edited_User = facUser.EditUser({
route: "EditUser"
}, {cid: $stateParams.company_id, objEditUser: TempUserInfo}, function success(data, status, headers) {
console.log(data);
}, function err(data, status, headers, config) {
});
基本上第一部分是参数。
第二部分是发布值。