编程语言
首页 > 编程语言> > javascript – 如何在Ember.js中正确加载分页路径?

javascript – 如何在Ember.js中正确加载分页路径?

作者:互联网

我在#/ 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,页面也不会加载.

小提琴here
#/发布路线here
#/ posts / 1 route here(注意即使发送了JSON,它也不会加载内容)

解决方法:

默认情况下,postsPageRoute将设置postsPage控制器.您需要告诉它设置posts控制器.

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

标签:javascript,ember-js,handlebars-js,ember-router
来源: https://codeday.me/bug/20190629/1328901.html