【发布时间】:2013-11-28 16:10:17
【问题描述】:
我正在尝试使用 ember 数据构建一个小应用程序,并且我正在尝试通过其专辑呈现艺术家的所有歌曲。
我的模型看起来像:
App.Artist = DS.Model.extend({
name: DS.attr('string'),
albums: DS.hasMany('album', {async:true})
});
App.Song = DS.Model.extend({
title: DS.attr('string'),
artist: DS.belongsTo('App.Artist'),
album: DS.belongsTo('App.Album')
});
App.Album = DS.Model.extend({
title: DS.attr('string'),
cover_url: DS.attr('string'),
artist: DS.belongsTo('artist'),
songs: DS.hasMany('song', {async:true})
});
在模板中,我尝试将其渲染为:
<script type='text/x-handlebars', data-template-name='artists'>
{{#each artist in model}}
{{#linkTo 'artist' artist}}{{artist.name}}({{artist.albums.length}}){{/linkTo}}
{{/each}}
{{outlet}}
</script>
<script type='text/x-handlebars', data-template-name='albums'>
{{#each album in albums}}
<h3>{{album.title}}</h3>
{{#each song in album.songs}}
{{song.title}}
{{/each}}
{{/each}}
</script>
专辑标题显示正确,但歌曲标题未显示。 Ember 向加载专辑歌曲的服务器发送请求,album.songs 为DS.ManyArray:ember461。
响应如下:
{
songs: [
{
id: 8
artist_id: 1,
album_id: 5,
title: "title"
}
]
}
album.songs 没有被解析的原因是什么?
感谢您的帮助。
【问题讨论】:
标签: javascript rest ember.js ember-data has-many