createRecord在模型中添加空白记录

时间:2013-08-11 17:32:11

标签: ember.js ember-data

我已发布了我的代码here

点击添加按钮,我试图在模型中创建新记录,但这里是添加空白记录。

    savecontact: function(){
    App.Person.createRecord({   
          fname: this.get('firstName'),
          lname: this.get('lastName'),
          contactype: 1
        });
        this.get('store').commit(); 
},

有人能告诉我为什么createRecord正在添加空白记录吗?

2 个答案:

答案 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 - 您的模型没有fnamelname属性。只需firstNamelastName

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();
}); 

以下是完整结果http://jsfiddle.net/marciojunior/GYbeT/