javascript - AngularJS 多种表单 - 如何按名称提交表单?

标签 javascript forms angularjs

我正在使用 Angular UI Bootstrap Accordion ,每个 Accordion 中都有一个表单。如何通过表单ID或表单名称提交表单?本质上,我有一个绑定(bind)到 Accordion 的点击事件,我想以某种方式将表单的名称作为参数传递,然后提交它?

谢谢

http://plnkr.co/edit/GMJ8fTWqSw2STnG4V2Ri?p=preview

最佳答案

您应该传入表单绑定(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/

相关文章:

css - ng-enter-stagger 动画不适用于 safari

javascript - 在同一段脚本中使用多个 div id

javascript - Angular 加载 Json 错误

javascript - 无法使 d3 圆环图标签正确排列

php - 如果提交另一个表单,为什么 php 在一个表单中输入空白值或重复值

javascript - 使用 laravel 后端 React Formik 文件上传

php - 使用 PHP 访问 jQuery 节点的子节点及其值以进入数据库

angularjs - 在 Visual Studio 2013 中运行 Protractor 测试

Javascript 没有改变 CSS 变量

javascript - 如何将 Observable 内部的值作为 Angular 2+ 中的函数返回