首先,我已经阅读了 SO 上的相关问题,但似乎没有一个对我有帮助。
我有 2 个模型,Foo 和 Bar。 Foo 有一个属性 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/