javascript - emberjs 一次获取所有表单字段/值

标签 javascript forms ember.js

在 ember.js 中创建新的表单字段时,似乎有一个多步骤过程。例如,我创建了表单域:

{{input value=email type="email" placeholder="Email" required="required"}}
{{input value=password type="password" placeholder="Password" required="required"}}

然后在我的 Controller 中我有这个:

App.AccountController = Ember.ObjectController.extend({
    email: null,
    password: null,
    actions: {
      login: function() {
        var data = this.getProperties("email", "password");

            console.log(data);
      }
    }
});

如您所见,电子邮件和密码在顶部被定义为 null,然后在用户填写字段时再次在数据变量中获取“值”。

有没有办法解决这个问题,我可以简单地说...获取表单字段中的所有值,分配给 null,然后在一行中获取所有表单字段值?类似于在 jQuery 中序列化表单?

最佳答案

简短的回答是您将需要重复。长话短说,您可以避免重复,但代价不值得。

首先,您不必在 Controller 中定义字段。这两行可以完全删除:

email: null,
password: null,

但是,我强烈建议保留它们以供记录之用。 (虽然它们是不必要的。)

其次,您必须意识到 Ember 没有“形式”的概念。你没有指定任何形式,只是两个输入框。如果您愿意,您可能可以构建一个表单组件来完全按照您的意愿执行操作,但我只建议您构建很多 表单。最后,您将有相当多的重复。

话虽如此,我认为您编写代码的方式是完美的。不要寻找最短的代码编写方法;寻找最易读的方式来编写代码。您当前拥有的代码是该代码中最易读的版本(在我看来)。


编辑:我没有注意到正在使用 ObjectController。如果未在 Controller 上明确设置字段,则转发对 Controller 内容的 get 和 set 调用。这意味着删除这两行将不起作用。但是,如果您从 Controller 而不是 ObjectController(无论如何都已弃用)进行扩展,它将起作用。

关于javascript - emberjs 一次获取所有表单字段/值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29101166/

相关文章:

javascript - 如果子窗体手动设置为无效,则Angular不会使父窗体无效

php - Zend Framework - 本地主机上的 utf8 正常 - 网络服务器上的 utf8 失败

ember.js - ember-simple-auth 不会为每个请求添加 Token

javascript - HTML/CSS 不工作或 Javascript - 下拉菜单

javascript - 如何创建一个 "show more"按钮并指定最初可以显示多少行文本

javascript - 如何获取提交表单的输入值

javascript - 重置表单、重置字段值、重置全部焦点 onSubmit()

javascript - 在 html 中包含 .handlebars 或 .hbs 文件

javascript - 将 ArrayController 与多个模型一起使用

javascript - 你会如何调试这个 javascript 问题?