4

#/posts投稿の最初のページを表示する投稿用のルートと、#/posts/:page_idリクエストしたページを表示するページネーション ルートがあります。私のルーターは次のようになります。

App.Router.map(function(match) {
  //...
  this.route('posts');
  this.resource('postsPage', { path: '/posts/:page_id' });
});

これらのルートは次のようになります。

App.PostsRoute = Em.Route.extend({
  model: function(params) {
    return App.store.find(App.Post, { 'page': params.page_id });
  }
});

App.PostsPageRoute = Em.Route.extend({
  renderTemplate: function() {
    this.render('posts');
  },
  model: function(params) {
    return App.store.find(App.Post, { 'page': params.page_id });
  }
});

これは、実装してから約 1 か月間は問題なく機能しましたが、最近、#/postsルート以外では機能しなくなりました。REST API が正しい JSON を返しても、ページが読み込まれません。

Fiddle here
#/posts route here
#/posts/1 route here (JSON が送信されても​​コンテンツは読み込まれないことに注意してください)

4

1 に答える 1

3

デフォルトでは、postsPageRouteはpostsPageコントローラーをセットアップします。ポストコントローラを設定するように指示する必要があります。

App.PostsPageRoute = Em.Route.extend({
  setupController: function(controller, model) {
    this.controllerFor('posts').set('content', model)
  },
  renderTemplate: function() {
    this.render('posts');
  },
  model: function(params) {
    return App.store.find(App.Post, { 'page': params.page_id });
  }
});
于 2013-02-14T14:17:46.533 に答える