emberjs一次获取所有表单字段/值
emberjs get all form fields / values at once
在ember.js中创建新的表单字段时,似乎有一个多步骤的过程。例如,我创建表单字段:
{{input value=email type="email" placeholder="Email" required="required"}}
{{input value=password type="password" placeholder="Password" required="required"}}
然后在我的控制器中,我有这个:
App.AccountController = Ember.ObjectController.extend({
email: null,
password: null,
actions: {
login: function() {
var data = this.getProperties("email", "password");
console.log(data);
}
}
});
正如您所看到的,电子邮件和密码在顶部被定义为null,然后在数据var中再次定义,以在用户填写字段时获得"值"。
有没有办法绕过这一点,我可以简单地说。。。取表单字段中的所有值,赋值为null,然后在一行中获取所有表单字段值?可能类似于jQuery中的序列化表单?
简单的答案是你需要重复。长期的答案是,你可以避免重复,但代价是不值得的。
首先,您不必在控制器中定义字段。这两行可以完全删除:
email: null,
password: null,
但是,我强烈建议将它们保存起来,以备存档之用。(不过没有必要。)
其次,你必须意识到Ember没有"形式"的概念。您没有指定任何表单,只有两个输入框。如果你愿意,你可能会构建一个表单组件来做你想做的事情,但我只建议你构建很多的表单。最后,你会有相当多的重复。
话虽如此,我认为你编写代码的方式是完美的。不要寻找编写代码的最短方法;寻找最可读的代码编写方式。您当前拥有的代码是该代码的可读性最高的版本(在我看来)。
编辑:我没有注意到正在使用ObjectController
。如果没有在控制器上显式设置字段,则转发对控制器内容的get和set调用。这意味着删除这两条线是行不通的。但是,如果从Controller
而不是ObjectController
(无论如何都不推荐使用)进行扩展,它将起作用。
相关文章:
- 通过单击动态加载的表中同一行的另一个字段来更新一行的字段
- 添加和删除隐藏字段数组中的值,而不提交表单
- 单击鼠标,用MySQL数据填充html表单输入字段
- 带有条件字段的PHP表单
- 验证PDF表单中的字段
- HTML提交表单,同时包含空字段检查和按钮隐藏
- 在表单中的输入字段上提交事件
- 当所有输入文本字段都为空时,禁止表单提交,但当jquery中的任何字段不为空时允许提交
- 表单输入字段随着溢出的文本而增长
- 如何将onChange方法添加到ExtJS 4表单中的所有字段(textField)中
- 尝试使用名称访问表中字段的日期选取器时出现问题
- Javascript 表单 - 字段不是必需的
- 单击按钮时更改数据库表的字段值
- 数据表将字段值关联到按钮,而 ajax 填充表
- 返回数据表输入字段
- 更改附加表行字段jQuery的名称
- Angularjs表单/字段验证使用JavaScript函数,无需指令
- 仅在Firefox中,表脱离字段集边界
- 如何在表单提交后使用JQuery从附加到HTML表的字段中获取$_POST数组中的值
- 什么's提交表单后,从post数组中动态附加的表行字段中获取值的问题