提交表格时Ember DS.Store错误

时间:2014-01-11 04:57:56

标签: ember.js ember-data

我是ember的新手,我正在尝试创建一个基本的注册表单。

相关模型:

App.NewUser = DS.Model.extend({
  user_name: DS.attr('string'),
  password: DS.attr('string'),
  confirm_password: DS.attr('string'),
  email: DS.attr('string'),
  first_name: DS.attr('string'),
  last_name: DS.attr('string'),
});

相关控制人:

App.SignupController = Ember.ArrayController.extend({
  actions: {
    signup: function() {
        var data = this.getProperties('first_name', 'last_name', 'email', 'user_name', 'password', 'confirm_password');
        var newUser = this.store.createRecord('newUser', data);
        newUser.save();
    },
  },
});

执行“注册”操作时,出现以下错误:

Error: Attempted to handle event `didSetProperty` on <App.NewUser:ember332:null> while in state root.deleted.saved. Called with {name: last_name, oldValue: undefined, originalValue: undefined, value: undefined}.

我做错了什么?

1 个答案:

答案 0 :(得分:0)

这是一个错误,如果您将值设置为当前设置的值(undefined上的createRecord),则Ember Data会错误地设置记录状态

您需要在创建记录时将值强制转换为空字符串或不设置未定义的值。

for(var key in data){
   if(!data[key]) delete data[key];
}

http://emberjs.jsbin.com/OxIDiVU/124/edit

https://github.com/emberjs/data/issues/1648