我使用的是ember 1.3.1和ember-data 1.0.0-beta.5。在创建新模式时,我收到以下错误
断言失败:无法克隆未实现Ember.Copyable的Ember.Object
以下是我的模型代码
App.myModel = DS.Model.extend({名称: DS.attr('string'),年龄: DS.attr('string') });
在我的创建路由模型功能中
返回Em.Object.create({});
最后,在保存时,我执行以下操作
this.store.createRecord('property',this.get(‘this.get’));
尽管出现了错误,但我的后端服务被成功调用并保存了新模型。
请指点一下。
谢谢
发布于 2014-03-13 22:59:29
我遇到了同样的问题,我通过执行以下操作修复了这个问题:
在模型函数中进行路由替换
return Em.Object.create({});
使用
return this.store.createRecord('myModel');
在保存和替换时
this.store.createRecord('myModel', this.get('model'));
使用
this.get('model').save();
发布于 2014-06-23 21:52:06
为了完整起见,在@acidleaf描述的场景中,这是来自ember核心团队的Yehuda Katz
在此视频中提供的解决方案:
Off the Menu: Building a Client-Side With Ember and Rails - Yehuda Katz @ Rails Israel 2013
在返回要显示的资源列表(即资源StoriesRoute、PostsRoute等的复数版本)的路径中,您将返回一个经过筛选的列表,其中包含不是新的资源:
model: function() {
this.store.find('myModel');
return this.store.filter('myModel',function(myModel){
return !myModel.get('isNew');
});
}
发布于 2014-01-28 06:01:24
我是Ember的新手,仍然在尝试捕获迁移到更新版本的Ember和Ember Data时出现的所有问题,但是...
一方面,我认为你在最后一个代码块中有一个错误,应该是:
this.store.createRecord('myModel', this.get('model'));
// myModel instead of property
但另一方面,我认为这不是问题所在:-/
无论如何,试着在这里查看(和比较) Ember数据的变化:https://github.com/emberjs/data/blob/master/TRANSITION.md和这个http://discuss.emberjs.com/t/createrecord-using-this-get-model-throws-an-error/3968或类似的
希望它能帮上忙!
J.
https://stackoverflow.com/questions/21344539
复制相似问题