在通常的javascript表单提交中,当我发布帖子时,元素名称和值会自动在HTTP请求中发送到服务器,而不必收集每一个。
我在角形提交中注意到的情况并非如此。基于ng-submit example我必须将视图中的每个ng模型收集到我的控制器中,我必须在我写的提交函数中执行此操作。
我的问题
有没有办法可以从视图中收集所有内容而无需参考我控制器中的所有ng-model?
为什么?
在这种情况下,表单元素是从一个指令动态绘制的,当它们如此之多时,它们对于引用它们并不是很实用。
有什么建议吗?
答案 0 :(得分:3)
这取决于应用程序到应用程序。如果您的SPA是SPA,那么您必须确保使用ng-submit
并提交表单。
如果您确保同时添加ng-model
,则在向表单添加动态元素时,您不必担心它们。它将成为表单提交的一部分。
我认为您可以做的是,所有表单字段(甚至动态元素)都可以在对象中维护,例如formData
然后将所有模型添加到此对象中。现在,在submit方法中,您可以使用formData
对象读取所有表单元素值(事件动态元素值)。
每当您添加动态元素时,请确保将其添加到formData
对象
E.g。
<input ng-model="formData.field1" type="text">
<input ng-model="formData.field" type="text">
在提交方法内,您可以使用$.param($scope.formData)