首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >emberjs无法克隆未实现Ember.Copyable的Ember.Object

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

Stack Overflow用户
提问于 2014-01-25 07:46:28
回答 4查看 7.3K关注 0票数 16

我使用的是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’));

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

请指点一下。

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-03-13 22:59:29

我遇到了同样的问题,我通过执行以下操作修复了这个问题:

在模型函数中进行路由替换

代码语言:javascript
复制
return Em.Object.create({});

使用

代码语言:javascript
复制
return this.store.createRecord('myModel');

在保存和替换时

代码语言:javascript
复制
this.store.createRecord('myModel', this.get('model'));

使用

代码语言:javascript
复制
this.get('model').save();
票数 10
EN

Stack Overflow用户

发布于 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等的复数版本)的路径中,您将返回一个经过筛选的列表,其中包含不是新的资源:

代码语言:javascript
复制
model: function() {
  this.store.find('myModel');
  return this.store.filter('myModel',function(myModel){
    return !myModel.get('isNew');
  });
}
票数 6
EN

Stack Overflow用户

发布于 2014-01-28 06:01:24

我是Ember的新手,仍然在尝试捕获迁移到更新版本的Ember和Ember Data时出现的所有问题,但是...

一方面,我认为你在最后一个代码块中有一个错误,应该是:

代码语言:javascript
复制
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.

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21344539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档