0

Ember アプリのセットアップがあり、/playlist/1 にアクセスすると、テンプレートが期待どおりにレンダリングされます。ただし、モデル データは表示されません。私は、アウトレットのあるplaylist.hbsファイルと、データを表示するためのhtmlとハンドルバーを備えたそのフォルダー内のindex.hbsを含むプレイリストフォルダーを持っています。App.PlaylistIndexController と App.PlaylistIndexRoute の両方が定義されています。

App.Router.map(function() {
    this.resource('account', {path: '/account/:accountId'}, function() {
        this.route('login');
    });

    this.resource('playlist', { path: '/playlist/:playlist_id'}, function() {
        this.route('edit');
  });
});

FWIW、ネストされたルートを追加する前に、すべてが適切に機能していました(コントローラーとルートはそれぞれ App.PlaylistController と App.PlaylistRoute として定義されています)

"playlist":{"id":1,"name":"playlistname"}

プレイリスト データを正しく表示する方法はありますか?

アップデート:

App.PlaylistIndexRoute = App.AuthenticatedRoute.extend({
    setupController: function(controller, model) {
        this._super(controller, model);     
        var online = this.get('store').find('account');
        this.controllerFor('playlistViewers').set('model', online);
    },
});

<div id="main">
  <div id="primary">
    <section id="playlist">
      <header class="playlist-header">
        <h2>Playlist</h2>
        <h1>{{name}}</h1>       
      </header><!--.playlist-header-->

      <div class="playlist-content">
        <ul>

          {{#each song in songs}}
            <li {{action 'play' song}} class="show-for-mobile">
              <button {{bind-attr class="song.isPlaying:icon-volume-up:icon-play song.isStreaming:icon-adjust"}} ></button>
              <div class="song-meta"> 
                <span class="song-name">{{song.name}}</span>
                <span class="song-artist">{{song.artist}}</span>
              </div><!--.song-meta-->
            </li>
          {{/each}}
        </ul>       
      </div><!--.playlist-content-->
    </section><!--#playlist-->
  </div><!--#primary-->

{{partial "sidebar"}}

これが私の現在のプレイリスト/index.hbs ファイルですが、{{name}} でさえ何も表示されません

4

1 に答える 1

4

モデルPlaylistIndexRouteが必要です。これは、プレイリスト リソースによって読み込まれたモデルである可能性があります。

App.PlaylistIndexRoute = App.AuthenticatedRoute.extend({
  model: function() {
    return this.modelFor('playlist');
  }
});
于 2013-10-25T06:53:59.203 に答える