我正在尝试在 Angular 应用程序中提交标准表单。一切正常,直到我尝试将 ng-click 添加到表单的提交按钮单击操作只是为了给用户一些反馈。
我的行为有点奇怪。提交完成,点击行为的调用都被调用了,但是,没有随表单提交的参数。
我一直在谷歌搜索,人们似乎说在表单上使用 ng-click 禁用提交,但事实并非如此,每个工作正常,除了未发送的表单参数。
我知道我可能可以重新定义自己的提交功能,使用 ng-submit 拦截帖子并自己做帖子,这似乎有点矫枉过正,因为我想做的几乎是工作。(在这种情况下,我如何从角度回调中获取表单参数?)
更新
这是一个实时示例: http: //jsfiddle.net/hHapg/5/。如果您选中一个框并提交,则 URL 上没有参数。如果您编辑文件并删除提交按钮上的 ng-click,它就可以工作。
<form ng-app="test" action="/echo/jsonp" name="orders" target="_blank" ng-controller="test">
<table>
<tr ng-repeat="order in [{orderId:1}, {orderId:4}]" >
<td>
<input type="checkbox" name="order_ids{{i}}" value="{{order.orderId}}"></input>
</td>
<td>
{{order.orderId}} : {{ order.checked}}
</td>
</tr>
</table>
<input type="submit" name="action" value="Picking List" class="btn btn-primary picked" ng-clik="submit(true)">
</form>
解决方案
发现了问题。尽管真正的代码并不完全是我发布的代码。在兰登的帮助下,我设法解决了这个问题。问题是我在表单声明中有一个硬编码数组(而不是在我的示例中的 ng-repeat 中)。(从角度来看,它是硬编码的,但实际上是在运行时生成的)。将此数组移动到顶部(与 ng-ap 相同),解决了 prome。