在 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/