Ember活动链接

时间:2017-04-30 02:27:33

标签: ember.js

我有一条路线,我想让兄弟路线的链接也是活跃的。我已尝试在链接中使用current-when,但它对我不起作用。

我的路线如下

//projects
//projects/:project_id
//projects/:project_id/user/:user_id

当我导航到// projects /:project_id route时,右侧链接被设置为活动状态。我想在// projects /:project_id / users /:user_id路由上激活相同的链接。

我在父项目//项目hbs模板中的链接是

{{#link-to "projects.project" item.projectID current-when="projects.user" tagName="tr"}}

我在这里做错了什么?

更新

当使用@ ykaragol的辅助函数的编辑版本和链接到...来呈现路径时,我能够使它最初工作。

{{#link-to "projects.project" item.projectName active=(calculate-active 'projects.user projects.project' item.projectName) tagName="tr"}}


compute(params, hash){
var pathname = window.location.pathname.split('/');
var pathProj = pathname[2];
var currRoute = this.get('currentRouteName');
var routes = params[0].split(' ');
if( ($.inArray( currRoute, routes) > -1) && (pathProj == params[1]) ){
  return true;
}
return false;
}

但是当我点击其他项目时它没有更新...

1 个答案:

答案 0 :(得分:0)

如果路线没有动态细分,则按照docs中的说明运行。我已在this twiddle内对其进行了测试。

但是在使用动态细分时我无法使其正常工作。请检查this twiddle。我怀疑这可能是个错误。您可以在slack中提出此问题。

顺便说一句,作为一种解决方法,您可以将布尔值传递给currentWhen属性(如docs中所述)。因此,您可以编写一个帮助器或计算属性来使用正则表达式进行计算。

<强>更新

作为第二种解决方法,您可以自己处理active的{​​{1}}属性。试试this twiddle