Ember链接 - 忽略查询参数以绑定类`active`

时间:2014-11-03 19:54:51

标签: ember.js

我是一个简单的应用程序,可以获取给定时间段的记录,并支持分页结果:

// routes
this.resource('visits', function() {
  this.route('list', { path: '/:period' });
});

// 'visits' template
.menu
  link-to %a.item 'visits.list' 'today' (query-params page=1)
    | Today
  link-to %a.item 'visits.list' 'yesterday' (query-params page=1)
    | Yesterday
  link-to %a.item 'visits.list' 'week' (query-params page=1)
    | Current Week

我希望每次点击一个句点,它都会重置为第1页。问题是,当我转到不同于1的任何其他页面时,{I}中的当前period {1}}不再是link-to

例如:active

我尝试解决此问题,重置params,或者按照此处的说明向控制器添加默认值:

然而,由于我没有退出控制器,因此两种解决方案都不适用于我。是否可以通过链接来忽略特定的http://localhost:4200/visits/today?page=5并保留query-param

更新

这是一个有这个问题的JSBin:http://emberjs.jsbin.com/mulonulefi/4/edit

谢谢!

2 个答案:

答案 0 :(得分:6)

您可以通过设置{{link-to}}属性来覆盖使current-when处于有效状态的路线:

<ul>
  <li>{{#link-to 'visits.list' 'all' (query-params page=1) current-when="visits.list"}}All{{/link-to}}</li>
  <li>{{#link-to 'visits.list' 'today' (query-params page=1) current-when="visits.list"}}Today{{/link-to}}</li>
</ul>

我更新了version of your JSBin here,并创建了JSBin with references

答案 1 :(得分:-1)

页面变量是否正常工作?尝试使用引号(query-params page ='1')...