小编典典

AngularJS不发送隐藏字段值

javascript

对于特定的用例,我必须以“旧方式”提交单个表单。意思是,我使用带有action
=“”的表单。响应已流式传输,因此我不会重新加载页面。我完全知道,典型的AngularJS应用程序不会以这种方式提交表单,但是到目前为止,我别无选择。

也就是说,我尝试从Angular填充一些隐藏字段:

<input type="hidden" name="someData" ng-model="data" /> {{data}}

请注意,显示的是正确的数据值。

该表格看起来像一个标准表格:

<form id="aaa" name="aaa" action="/reports/aaa.html" method="post">
...
<input type="submit" value="Export" />
</form>

如果我点击了提交,则没有值发送到服务器。如果我将输入字段更改为键入“文本”,它将按预期工作。我的假设是隐藏字段没有真正填充,而文本字段实际上是由于双向绑定而显示的。

有什么想法可以提交由AngularJS填充的隐藏字段吗?


阅读 290

收藏
2020-05-01

共1个答案

小编典典

您不能对隐藏字段使用双重绑定。解决方案是使用方括号:

<input type="hidden" name="someData" value="{{data}}" /> {{data}}

编辑:

从Angular 1.2开始,您可以使用’ng-value’指令将表达式绑定到input的value属性。该指令应与输入单选框或复选框一起使用,但与隐藏的输入一起使用时效果很好。

这是使用ng-value的解决方案:

<input type="hidden" name="someData" ng-value="data" />
2020-05-01