加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

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

发布时间:2020-12-14 22:54:07 所属栏目:资源 来源:网络整理
导读:我的表格有问题.我正在提交表单,并且一些字段不必填写,当数据发送到一个宁静的API时,我看到angular不会拾取空的,从未触及,从未改变的输入字段. 但在服务器端,预计该领域将存在.我如何获得角度来发送这些字段? 我有两个输入(data.Record.one,data.Record.two

我的表格有问题.我正在提交表单,并且一些字段不必填写,当数据发送到一个宁静的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 

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读