Javascript js Ember data render double嵌套有许多关系
我试图建立一个小应用程序使用余烬数据,我试图通过它的专辑呈现艺术家的所有歌曲 我的模型看起来像:Javascript js Ember data render double嵌套有许多关系,javascript,rest,ember.js,ember-data,has-many,Javascript,Rest,Ember.js,Ember Data,Has Many,我试图建立一个小应用程序使用余烬数据,我试图通过它的专辑呈现艺术家的所有歌曲 我的模型看起来像: 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'),
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>
专辑中的歌曲没有被解析的原因是什么
感谢您的帮助。除非您有特殊的序列化程序或旧版本的余烬数据,否则您的json是错误的
{
songs: [
{
id: 8
artist_id: 1,
album_id: 5,
title: "title"
}
]
}
应该是
{
songs: [
{
id: 8
artist: 1,
album: 5,
title: "title"
}
]
}
问题是我错误地指定了歌曲上的关系:
App.Song = DS.Model.extend({
title: DS.attr('string'),
artist: DS.belongsTo('App.Artist'),
album: DS.belongsTo('App.Album')
});
变成:
App.Song = DS.Model.extend({
title: DS.attr('string'),
artist: DS.belongsTo('artist'),
album: DS.belongsTo('album')
});
谢谢你的回答。我试图将其更改为您的格式,但无法解决问题。此文档是否过时?更改为您的格式修复了我以前遇到的一些问题,如album.artist.title以前不起作用,但它无法修复歌曲的问题。
App.Song = DS.Model.extend({
title: DS.attr('string'),
artist: DS.belongsTo('artist'),
album: DS.belongsTo('album')
});