首先,我已经阅读了有关SO的相关问题,似乎没有人帮助我。
我有2个型号, Foo 和 Bar 。 Foo 有一个属性 bars , hasMany Bar 。
// FOO
export default DS.Model.extend({
name: attr('string'),
bars: hasMany('bar')
});
// BAR
export default DS.Model.extend({
name: attr('string')
foo: belongsTo('foo')
});
JSON有效负载:
{
"name": "Something",
"bars": [
{
"name": "something else"
},
{
"name": "another one"
}
]
}
我一直想把这个错误弄清楚一段时间,但我被卡住了。
这是jsbin。 如果您查看浏览器控制台(而不是jsbin控制台),您可以看到错误。
答案 0 :(得分:1)
看起来您没有为“条形”对象指定ID。每个模型都需要一个ID来使对象变为unque,并知道如何将其与资源相关联。将服务器输出更改为以下内容应该可以解决问题:
{
"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在后台加载数据,而不会阻止/导致任何等待关系解决的错误。