javascript - EmberJS 无法设置未定义的属性 'store' (DS.hasMany)

标签 javascript json ember.js ember-data ember-app-kit

首先,我已经阅读了 SO 上的相关问题,但似乎没有一个对我有帮助。

我有 2 个模型,FooBarFoo 有一个属性 bars,它 hasMany Bar

//FOO

export default DS.Model.extend({
  name: attr('string'),
  bars: hasMany('bar')
});

//酒吧

export default DS.Model.extend({
  name: attr('string')
  foo: belongsTo('foo')
});

以及 JSON 负载:

{
  "name": "Something",
  "bars": [
    {
       "name": "something else"
    },
    {
       "name": "another one"
    }
  ]
}

我已经尝试解决这个错误有一段时间了,但我陷入了困境。

这是jsbin 。 如果您查看浏览器控制台(而不是 jsbin 控制台),您可以看到错误。

最佳答案

看起来您没有为“bar”对象指定 ID。每个模型都需要一个 ID 来使对象变得唯一,并知道如何将其与资源关联起来。将服务器输出更改为以下内容应该可以解决问题:

{
  "name": "Something",
  "bars": [
    {
       "id": 1,
       "name": "something else"
    },
    {
       "id": 2,   
       "name": "another one"
    }
  ]
}

另一个解决方案(无论如何,ID 都应该存在)是将“async”设置为 true,如下所示:

export default DS.Model.extend({
  name: attr('string'),
  bars: hasMany('bar', { async: true })
});

这将导致 EmberJS 在后台加载数据,并且不会阻止/导致任何等待关系解析的错误。

关于javascript - EmberJS 无法设置未定义的属性 'store' (DS.hasMany),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23867716/

相关文章:

javascript - 节流 Reactjs 事件系统

ios - 将 JSON 放入数组

ember.js - 登录后如何修改适配器?

javascript - 从模块导入多个函数而不显式导出对象或命名导出

javascript - 麻烦单元测试 Angular react 性表单字段

javascript - ExtJS 面板中的 Three.js 场景

javascript - 如何使用 Math.random() 做题?

javascript - 整理 Handlebars 文件

ajax - ASP.NET MVC3 : How to redirect to a view when a post was made using AJAX?

ember.js - emberjscheckedBinding on Em.Checkbox 不起作用