我有一条路线,我想让兄弟路线的链接也是活跃的。我已尝试在链接中使用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;
}
但是当我点击其他项目时它没有更新...
答案 0 :(得分:0)
如果路线没有动态细分,则按照docs中的说明运行。我已在this twiddle内对其进行了测试。
但是在使用动态细分时我无法使其正常工作。请检查this twiddle。我怀疑这可能是个错误。您可以在slack中提出此问题。
顺便说一句,作为一种解决方法,您可以将布尔值传递给currentWhen
属性(如docs中所述)。因此,您可以编写一个帮助器或计算属性来使用正则表达式进行计算。
<强>更新强>
作为第二种解决方法,您可以自己处理active
的{{1}}属性。试试this twiddle。