我正在使用 Angular UI Bootstrap Accordion ,每个 Accordion 中都有一个表单。如何通过表单ID或表单名称提交表单?本质上,我有一个绑定(bind)到 Accordion 的点击事件,我想以某种方式将表单的名称作为参数传递,然后提交它?
谢谢
最佳答案
您应该传入表单绑定(bind)到的对象,或者只是从 Controller 的 $scope
动态拉取它,而不是传入表单的名称或 id。
在 Angular 中,在 Controller 中包含任何与 DOM 相关的内容都被认为是不好的形式。通过在 Controller 中使用 DOM,它极大地降低了 Controller 的测试能力,而 Controller 是 Angular 构建的关键支柱之一。
示例:
<form ng-submit="handleSubmit(formData)">
<input ng-model="formData.field1"/>
<input ng-model="formData.field2"/>
</form>
根据您的 plnkr 示例调用表单的 rcSubmit 属性中定义的函数,执行以下操作:
formElement.bind('submit', function () {
$parse(attributes.rcSubmit)();
});
documentation for $parse状态将 Angular 表达式转换为函数
,这正是您在本例中所需要的。
关于javascript - AngularJS 多种表单 - 如何按名称提交表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23036607/