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

时间:2014-05-26 10:07:47

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

首先,我已经阅读了有关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控制台),您可以看到错误。

1 个答案:

答案 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在后台加载数据,而不会阻止/导致任何等待关系解决的错误。