javascript – AngularJS如何提交未触及的空表单字段?

前端之家收集整理的这篇文章主要介绍了javascript – AngularJS如何提交未触及的空表单字段?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我的表格有问题.我正在提交表单,并且一些字段不必填写,当数据发送到一个宁静的API时,我看到angular不会拾取空的,从未触及,从未改变的输入字段.
但在服务器端,预计该领域将存在.我如何获得角度来发送这些字段?

我有两个输入(data.Record.one,data.Record.two),当我填写一个并提交表格时,我最终得到这个:

{
  "Record": {
    "one": "test"
  }
}

我想这是因为角度不会“看到”未被触及的空场.
但我希望如此:

{
  "Record": {
    "one": "test","two": ""
  }
}

这是我尝试的演示:http://plnkr.co/edit/Ky0PQ9U5o1V7IyU9QgkK

我很清楚我可以使用空的骨架对象初始化表单,但我真的不想那样做.如果我需要这样做,那只是额外的代码,如果另一个开发人员在表单中添加一个字段但是忘记/不知道JS代码中的骨架,那么作为奖励只会引入潜在失败的区域.

最佳答案
Angular默认将空字段视为空/ null.您可以通过在输入字段中添加ng-trim =“false”来禁用此功能.

这不会添加额外的代码,只会在您的标记添加定义.

https://docs.angularjs.org/api/ng/input/input%5Btext%5D

编辑:我现在看到你想要的. Angular会很好地照顾您的模型(数据).仅仅因为您将输入字段绑定到sub,sub属性不会使用空字符串初始化该属性.输入字段不包含空字符串 – 它们包含null,这是您首先放入它们(通过将它们绑定到未初始化的属性).

您需要的功能是角度来初始化您的数据.记录您需要的属性.您可以为该名为initialize-property的类创建一个自定义指令,该指令将其模型设置为空字符串.

编辑:我创建了指令,但由于一些跨域问题,plunker不允许我访问.您应该能够在自己的工作中使用它

myApp.directive('initializeProperty',function() {
  return {
      restrict: 'A',link: function (scope,element,attr) {
        element.val('');
      }
  };
});

然后在输入字段中使用:

One 
原文链接:https://www.f2er.com/html/426062.html

猜你在找的HTML相关文章