ngResource 像 GET 一样对待 POST

ngResource treating POST like GET

我注意到虽然我在我的 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 的 header 上传递,就好像它是 GET 一样。

我无法弄清楚如何使用 $save() 或如何 post/put 将此作为表单。

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" } }
    })
}]);
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) {

});

本质上第一部分是参数。

第二部分是post个值。