0
我設置了一個應用程序,可以在Fixture Adapter上運行良好。Ember不渲染嵌入式數據
這是我使用的渲染模板:
<div class="large-7 columns" id="song-list">
<div class="playlist-meta row">
<div class="large-12 columns">
<h4 class="subheader">Playlist</h4>
<h1 class="playlist-title">{{controller.name}}</h1>
</div>
</div>
{{#view App.SortableView}}
{{#each song in controller.songs}}
<li class="row song">
<button {{action "playSong" song}} class="toggle-play"><span class="entypo play"></span></button>
<h4 class="subheader song-artist"><a href="#">{{song.artist}}</a></h3>
<h3 class="song-title"><a href="#">{{song.name}}</a></h3>
</li>
{{/each}}
{{/view}}
</div>
當我使用REST適配器,然而,歌曲沒有渲染。播放列表名稱本身仍呈現,但不是歌曲。
這就是被退回來的JSON方面:當我使用夾具數據
{"playlist":{"id":1,"name":"playlist","songs":[{"id":1,"name":"Song Name","artist":"Song Artist","soundcloud":"/tracks/1"}]}}
模型的定義:
App.Playlist = DS.Model.extend({
name: DS.attr('string'),
songs: DS.hasMany('App.Song'),
});
App.Song = DS.Model.extend({
name: DS.attr('string'),
artist: DS.attr('string'),
soundcloud: DS.attr('string'),
playlist: DS.hasMany('App.Playlist'),
});
App.Playlist.FIXTURES = [
{
id: 1,
name: 'Playlist Name',
songs: [1, 2, 3],
}];
App.Song.FIXTURES = [
{
id: 1,
name: 'Song Name',
artist: 'Song Artist',
soundcloud: '/tracks/12345',
}];
難道說你應該有'{在playlist.songs {#each歌}}'?您解析的JSON樣本是一個帶有「播放列表」鍵的對象,該對象又具有「歌曲」鍵。但是,我想{'{{controller.name}}'不會工作,它必須是{{playlist.name}}'。 – Christoffer 2013-05-01 22:05:41
{{controller.name}}按預期工作(在此示例中輸出「播放列表」)。由於我能夠訪問該名稱,因此我認爲歌曲也可以。除非我忽略了一個錯字,這與我在Fixture Data中的設置完全相同。 – paulruescher 2013-05-01 22:09:21
您是如何定義模型的?更重要的是關係?你能否更新顯示這個問題的問題?從FixtureAdapter加載數據與RESTAdapter不一樣。 – intuitivepixel 2013-05-01 22:25:39