我无法弄清楚如何正确填充和接受来自 RC1 下的 Ember 表单的更新。我把它归结为这个 jsfiddle 中的基本要素。我已经做得足够远,可以显示特定实体(具有名字和姓氏的用户)的表单,并且当前值填充在字段中。但是,当用户键入时,字段实际上会随着每次击键而更新,单击后退按钮会显示数据已经更改,而无需单击更新按钮。我希望在更新之间保留一些逻辑,并且仅在用户单击更新按钮后才确认更新。
{{#view App.PersonFormView}}
First name: {{view Ember.TextField valueBinding="firstName"}}
Last name: {{view Ember.TextField valueBinding="lastName"}}
<button {{action "updatePerson"}}>Update</button>
{{/view}}
在表单模板中,我试图遵循 Ember.js 示例之一,但这样做会导致长时间延迟和使用 RC1 的可怕弃用警告。我认为这些示例仍在更新中。如果它存在,我更喜欢一种更优雅的方式来编码表单。
第二个问题是我无法在表单视图或控制器上捕获提交事件本身。我不知道这个活动要去哪里。
App.PersonFormController = Ember.ObjectController.extend({
updatePerson: function(params){
// this doesn't get triggered as I would have expected
console.log('controller updatePerson: '+params);
}
});
App.PersonFormView = Ember.View.extend({
tagName: 'form',
updatePerson: function(params){
// this doesn't get triggered either!
console.log('updatePerson params: '+params);
}
});
总之,我需要:
- 使用值填充输入字段,而无需在用户键入时将它们直接链接回模型的数据
- 捕获提交按钮的(或其他控件会很好)单击事件以及字段 - 以及实体的 ID - 以便我可以手动将它们设置回模型的数据