Emberjs:根据动态段重置控制器

时间:2014-12-01 11:34:41

标签: ember.js

我的应用程序中有这个路径结构:

Profile.Router.map(function() {
  this.resource('profile', { path: '/:user' }, function(){
    this.route('followers');
  });
});

我的/:user/followers页面应该显示:user的关注者列表。 profile.followers的控制器设置为无限滚动 - 因此它具有curPage, resultsPerPage等属性。

Profile.ProfileFollowersController = Ember.ArrayController.extend(InfiniteScroll.ControllerMixin,{
  curPage: 1,
  resultsPerPage: 20,
  //other code for infinite scroll which increments curPage as user scrolls down
})

现在,由于控制器在emberjs中是单例,当我从/tom/followers移动到/jin/followers时,为/tom/followers设置的无限滚动属性将被保留并应用于{{1也是。

例如。说我在/jin/followers并向下滚动4页,/tom/followers curPage控制器的属性设置为4.现在当我移动到'profile.followers'时,虽然模型钩子是route会返回jin的关注者列表,但会选择/jin/followers为4,因为ember的控制器是单例,我已经在curPage向下滚动到第4页。 这应该怎么处理?

以下是我的/tom/followers路线:

profile.followers

1 个答案:

答案 0 :(得分:1)

您可以使用route的{​​{1}}挂钩。每次输入路线时都会触发此挂钩。

setupController

我做了一个jsbin演示: http://emberjs.jsbin.com/fiyetefeno/6/

您可以在此处阅读API文档: http://emberjs.com/api/classes/Ember.Route.html#method_setupController