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 });
  }
});

在我实施它大约一个月后,它工作得很好,但它最近停止了对#/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 回答