emberjs hasMany返回undefined

时间:2013-02-12 20:18:27

标签: javascript ember.js

我正在尝试使用灯具和两个模型之间的一对多关系来实现最小的emberJs应用程序:

App.store = DS.Store.create({
  revision: 11,
  adapter: 'DS.FixtureAdapter'
});

App.Album = DS.Model.extend({
  Name: DS.attr("string"),
  Songs: DS.hasMany('App.Song')
});

App.Song = DS.Model.extend({
  Name: DS.attr("string"),
  Album: DS.belongsTo('App.Album')
});

App.Album.FIXTURES = [
  {
    id: 1,
    Name: 'foo'
  },
  {
    id: 2,
    Name: 'bar'
  }
];

App.Song.FIXTURES = [
  {
    id: 1,
    Album_id: 1,
    Name: "asdf"
  },
  {
    id: 2,
    Album_id: 2,
    Name: "Test"
  }
];

我可以像这样通过控制台访问相册模型     App.Album.find(1).get('Name')#=> FOO

每当我尝试通过专辑和歌曲之间的关系来访问歌曲属性时,我得到了未定义:

App.Album.find(1).get('Songs').objectAt(0) # undefined

任何提示我可能在这里做错了什么?

1 个答案:

答案 0 :(得分:2)

您尚未定义Song AlbumSongs: [1,2,3]。您需要在Album模型中指定Songs

(很确定它是Song_ids,但可能是{{1}}。)