0

我已经在这里发布了我的代码。

单击添加按钮时,我正在尝试在模型中创建新记录,但这里添加的是空白记录。

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

谁能告诉我为什么 createRecord 添加空白记录?

4

2 回答 2

2

有一些问题。首先,所有三个 propertyNames 都不正确。应该是 firstName、lastName 和 contacttype,而不是 fname、lname 和 contacttype。其次, 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/

于 2013-08-11T23:27:34.060 回答
2

我在您的示例中发现了一些问题:

1 - 您的模型没有fnameandlname属性。只是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/

于 2013-08-11T23:34:47.207 回答