emberjs无法克隆未实现Ember.Copyable的Ember.Object

ami*_*que 16 ember.js ember-data

我使用的是ember 1.3.1和ember-data 1.0.0-beta.5.在创建新模式时,我收到以下错误

断言失败:无法克隆未实现Ember.Copyable的Ember.Object

以下是我的型号代码

App.myModel = DS.Model.extend({name:DS.attr('string'),age:DS.attr('string')});

在我的创建路线模型功能

return Em.Object.create({});

最后保存我做了以下

this.store.createRecord('property',this.get('model'));

尽管出现错误,但我的后端服务已成功调用并保存了新模型.

请指导.

谢谢

Mar*_*rio 10

通过执行以下操作我遇到了同样的问题:
在路由替换的模型功能中

return Em.Object.create({});
Run Code Online (Sandbox Code Playgroud)

return this.store.createRecord('myModel');
Run Code Online (Sandbox Code Playgroud)

并保存替换

this.store.createRecord('myModel', this.get('model'));
Run Code Online (Sandbox Code Playgroud)

this.get('model').save();
Run Code Online (Sandbox Code Playgroud)

  • 我试过你的方式.它可以工作,但它会在您实际输入内容之前弄乱用户数量(我使用的是用户模型).这就像你有一个新的空记录 (4认同)

fme*_*dez 6

为了完整起见,在@acidleaf描述的场景中,这是Yehuda Katz该视频中ember核心团队提供的解决方案:

关闭菜单:用Ember和Rails建立客户端 - Yehuda Katz @ Rails Israel 2013

在您返回要显示的资源列表的路径中(即资源StoriesRoute,PostsRou​​te等的复数版本),您将返回一个包含非新内容的筛选列表:

model: function() {
  this.store.find('myModel');
  return this.store.filter('myModel',function(myModel){
    return !myModel.get('isNew');
  });
}
Run Code Online (Sandbox Code Playgroud)