我正在使用Ember App Kit和Ember Data创建一个应用程序。我有一个项目资源,同时具有创建和编辑表单。出于各种设计原因,我不希望在用户点击保存按钮之前更新或创建模型。我不确定在Ember中执行此操作的最佳设计模式,因为默认情况下将表单字段绑定到模型,该模型在数据输入时更新它。
答案 0 :(得分:2)
您需要在控制器上创建临时属性。
App.FooController = Em.ObjectController.extend({
userName: '',
createData: function() {
this.get('store').createRecord({
name: this.get('userName')
}).save();
this.set('userName', '');
},
saveData: function() {
this.set('model.name', this.get('userName'));
this.set('userName', '');
}
});
绑定到文本字段的userName
属性(或其他),然后在用户单击保存按钮时传输该值。
答案 1 :(得分:1)
或者,您可以创建复制模型属性的Ember.Object
,然后将表单绑定到该对象。然后在保存时将属性复制回模型。你可以用这种方式保存一些代码。