Ember.js ember js-未捕获错误:断言失败:无法委托集合

Ember.js ember js-未捕获错误:断言失败:无法委托集合,ember.js,ember-cli,Ember.js,Ember Cli,在将数据保存到api时,我会遇到此错误 Uncaught Error: Assertion Failed: Cannot delegate set('firstName', a) to the 'content' property of object proxy <>: its 'content' is undefined 不要使用ObjectController。只需使用Ember.Controller.extend。我在屏幕上看到了这一点。我自己也遇到了同样的问题。很可能您没有

在将数据保存到api时,我会遇到此错误

Uncaught Error: Assertion Failed: Cannot delegate set('firstName', a) to the 'content' property of object proxy <>: its 'content' is undefined

不要使用ObjectController。只需使用Ember.Controller.extend。

我在屏幕上看到了这一点。我自己也遇到了同样的问题。很可能您没有在管线中正确设置模型属性。根据本书,错误发生在
编辑
新建
路线中

如果您的
router.js
如下所示:

...
Router.map(function() {
  this.resource('friends', function() {
    this.route('new');
    this.route('show', { path: ':friend_id' });
    this.route('edit', { path: ':friend_id/edit' });
  });
});
...
friends/index
路由需要设置
model
属性:

import Ember from 'ember';

export default Ember.Route.extend({
  model: function() {
    return this.store.find('friend');
  },
});
friends/new
路线需要以不同的方式设置
model
: 从“余烬”导入余烬

export default Ember.Route.extend({
  model: function() {
    return this.store.createRecord('friend');
  },
});

对于任何不熟悉这本书(上面提到的)的人来说,问题来自书中的代码,这就是我引用它的原因。在大多数情况下,如果您遇到此问题,可能是因为您忘记或没有在适当的路由中正确设置模型属性。

Ember告诉您没有设置控制器的内容属性,您是否在路由模型挂钩中设置了模型?请为您的路线添加代码。我收到了此错误。原来我有一个重复的控制器。我不认为使用
Ember.ObjectController
有什么特别的错误;至少在当前版本1.8.0中。然而,向Ember 2.0过渡的控制器将被弃用,基本上由组件(我相信)取代。为了顺利过渡到Ember 2.0,明智的做法是切换到
Ember.Controller
,并在组件中创建模型属性。但是对于当前版本的
Ember.ObjectController
应该很好,我在编辑路径上遇到了这个错误。我已经在
routes/friends/edit
中定义了模型,例如
model:function(params){返回this.store.find('friend',params.friends_id);}
但是当我在编辑页面点击取消按钮时,仍然会出现错误。有指针吗?@DavidBecerra编辑路径实际上不需要这个模型挂钩
routes/friends/edit.js
应该只有导出默认的Ember.Route.extend({})上面显示的模型钩子应该位于
routes/folders/index.js
中。如果这还不能解决问题,那么您是否将代码repo托管在github上?在我发布后大约一秒钟,我意识到了我的错误。在控制器中,我使用的是
this
而不是
this.get('model')
。所以我有了
this.transitionRoute('friends.show',this)
this.transitionRoute('friends.show',this.get('model'))
export default Ember.Route.extend({
  model: function() {
    return this.store.createRecord('friend');
  },
});