Angular POST JSON structure

Angular POST JSON structure

本文关键字:structure JSON POST Angular      更新时间:2023-09-26

当我从angular应用中提交一个空表单时,它会发送以下JSON:

{foo: {}}

这会导致我的服务器错误500(而不是422),因为它期望以下结构:

{foo: {bar: ""}}

我怎么能确保"栏"键总是包含在我的JSON即使值是空的?

这是我的控制器当前的样子:

$scope.baz = {};
$scope.create = function() {
    var error, success;
    $scope.errors = {};
    success = function() {
      $scope.baz = {};
    };    
    error = function(result) {
        angular.forEach(result.data.errors, function(errors, field) {
            $scope.form[field].$setValidity('server', false);
            $scope.errors[field] = errors.join(', ');
        });    
    };
    Foo.save({ foo: { bar: $scope.baz.bar }}).$promise.then(success, error);
};

我认为当你在save请求中传递未定义的对象道具时,它会被忽略或删除,同时向服务器发送请求。您可以将该值作为空值字符串,以确保它分配了一些值,并且不应该从请求对象中删除。试着把你的代码修改如下:

Foo.save({ foo: { bar: $scope.baz.bar|| "" }})