在请求中使用angular - empty元素发送请求

时间:2016-04-24 13:08:21

标签: javascript angularjs

我发送带有提交表单的角度的POST请求。 我有选项输入字段,当我在那里输入内容并删除它然后在我的请求中我有这个字段包含“”。 这应该是怎么回事?

这就是我的表格外观:

<label class="col-md-2 col-xs-2 my-label"  for="contactFirstName">Imię</label>
      <div class="col-md-3 col-xs-3">
        <input type="text" class="form-control" id="contactFirstName" name="contactFirstName"
               placeholder="Imię"
               ng-model="loan.newLoan.contactPerson.firstName" >
      </div>

这就是我发送请求的方式:

function create() {
return RequestFactory.save({id1:'loans', id2:'create'},vm.newLoan,
    function () {
      MessageFactory.setSuccess({show:true, msg:'success'});
      $state.reload('loan.new');
    }, function(response){
      vm.isError = true;
      ErrorFactory.errorHandler(vm.errorMessages, response);
    });
}

发送时,在我的请求中,带有此字段的json看起来像这样:

 {"firstName":""}

可以吗?或者如果请求中的该字段为空,则该字段不应该存在? 我该怎么办?

2 个答案:

答案 0 :(得分:1)

  

可以吗?

是或否,取决于您的后端服务的期望。

您可以通过执行类似

的操作删除Angular中的空字段
function create() {
    var data = {};

    if (vm.newLoan.contactPerson.firstName) {
        data.firstName = vm.newLoan.contactPerson.firstName;
    }

    RequestFactory.save({ id1: 'loans', id2: 'create' }, data, ...);
}

如果您不想保存空字段,则应在后端服务中进行补充检查以删除空字段。永远不要相信从客户端发送的数据,即使您使用JavaScript验证数据也是如此。务必在服务器代码中进行额外检查。

答案 1 :(得分:1)

因此,您的html输入字段不是必需的,它非常精细。希望您的支持服务也是一个可选字段。如果它是必填字段,那么当您按下{{1}时,您必须按如下所示进行检查}按钮。

这只是一个例子:

<强> HTML

Save

<强> JS

<button type="submit" class="btn btn-primary blue" ng-
click="vm.save(yourFormName.$valid)"> Save</button>