AngularJS不会发送隐藏域的值。

12 浏览
0 Comments

AngularJS不会发送隐藏域的值。

对于一个特定的使用情况,我必须以“旧方式”提交单个表单。也就是说,我使用一个action=\"\" 属性的表单。响应是流式传输的,因此我不会重新加载页面。我完全意识到,一个典型的AngularJS应用程序不会以这种方式提交表单,但到目前为止我别无选择。

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

 {{data}}

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

表单看起来像一个标准表单:

...

 

如果我点击提交,服务器不会收到任何值。如果我将输入字段更改为\"type\"为\"text\",那么它就像预期的那样工作。我的假设是,隐藏字段实际上并没有被填充,而文本字段实际上是由于双向绑定而显示的。

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

admin 更改状态以发布 2023年5月20日
0
0 Comments

您可以始终使用type=textdisplay:none;,因为Angular会忽略隐藏的元素。正如OP所说,通常您不会这样做,但这似乎是一个特例。


0
0 Comments

您不能使用隐藏字段进行双向绑定。

解决方法是使用方括号:

 {{data}}

编辑:请参见github上的此线程:https://github.com/angular/angular.js/pull/2574

编辑:

自Angular 1.2以来,您可以使用'ng-value'指令将表达式绑定到输入的值属性。此指令应与输入单选按钮或复选框一起使用,但在隐藏输入中运行良好。

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


以下是使用ng-value和隐藏输入的小提琴:

http://jsfiddle.net/6SD9N

0