我已发布了我的代码here。
点击添加按钮,我试图在模型中创建新记录,但这里是添加空白记录。
savecontact: function(){
App.Person.createRecord({
fname: this.get('firstName'),
lname: this.get('lastName'),
contactype: 1
});
this.get('store').commit();
},
有人能告诉我为什么createRecord正在添加空白记录吗?
答案 0 :(得分:2)
有一些问题。首先,所有三个属性都不正确。应该是firstName,lastName和contacttype而不是fname,lname和contactype。其次,this.get('firstName')应该是this.get('currentContact.firstName'),第三,你需要在显示模态时将currentContact初始化为空对象。通过这些更改,创建新记录模式不再添加空白记录。
showmodal: function(){
this.set('currentContact', {});
$('#modal').modal();
},
savecontact: function(){
App.Person.createRecord({
firstName: this.get('currentContact.firstName'),
lastName: this.get('currentContact.lastName'),
contacttype: 1
});
this.get('store').commit();
},
更新的jsFiddle在这里:http://jsfiddle.net/GYbeT/21/
答案 1 :(得分:2)
我在你的样本中发现了一些问题:
1 - 您的模型没有fname
和lname
属性。只需firstName
和lastName
。
2 - 你的模态绑定到currentContact
,当你显示模态时,你不会使用currentContact
。
只需创建一个空联系人,然后让绑定设置值。
showmodal: function(){
this.set('currentContact', App.Person.createRecord());
$('#modal').modal();
}
1和2,这就是您的数据为空白的原因。
3 - 如果用户退出模态,则忘记回滚事务,而不保存。
我使用以下方式完成了这项工作:
$(document).delegate('.modal', 'hidden', function() {
controller.get('currentContact.transaction').rollback();
});