Ember.js 余烬主动链接
我有一个路由,我想使一个兄弟路由的链接到的活动。我曾尝试在链接中使用current,但它对我无效 我的路线如下Ember.js 余烬主动链接,ember.js,Ember.js,我有一个路由,我想使一个兄弟路由的链接到的活动。我曾尝试在链接中使用current,但它对我无效 我的路线如下 //projects //projects/:project_id //projects/:project_id/user/:user_id 当我导航到//projects/:project_id route时,右侧链接设置为活动。我希望相同的链接在//projects/:project\u id/users/:user\u id路由上处于活动状态 我在父//项目hbs模板中指向的链
//projects
//projects/:project_id
//projects/:project_id/user/:user_id
当我导航到//projects/:project_id route时,右侧链接设置为活动。我希望相同的链接在//projects/:project\u id/users/:user\u id路由上处于活动状态
我在父//项目hbs模板中指向的链接为
{{#link-to "projects.project" item.projectID current-when="projects.user" tagName="tr"}}
我做错了什么
更新
当使用@ykaragol的helper函数的编辑版本并链接到…渲染路线时,我能够让它开始工作
{{#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;
}
但当我点击另一个项目时,它不会更新 如果管线没有动态段,则其工作原理如中所述。我已经测试过了 但使用动态分段时,我无法使其工作。请查收。我怀疑这可能是个错误。你可以用英语问这个问题 顺便说一下,作为一种解决方法,您可以将布尔值传递给
currentWhen
属性(如中所述)。因此,您可以编写一个helper或computed属性来使用正则表达式计算它
更新:
作为第二种解决方法,您可以自己处理
链接到
的活动
属性。试试看 如果管线没有动态段,则其工作原理如中所述。我已经测试过了
但使用动态分段时,我无法使其工作。请查收。我怀疑这可能是个错误。你可以用英语问这个问题
顺便说一下,作为一种解决方法,您可以将布尔值传递给currentWhen
属性(如中所述)。因此,您可以编写一个helper或computed属性来使用正则表达式计算它
更新:
作为第二种解决方法,您可以自己处理
链接到
的活动
属性。试试看 这是一个很好的解决方案,但是有一个现有的bug,当我还尝试在//projects/:project\u id/user/:user\u id路由上使用didtransformation操作钩子手动(通过jquery)将活动类添加到div中时,它不允许我在当前中使用布尔值,但它也不起作用。因此这让我更接近了,但在用户页面上,所有项目链接都被设置为活动。考虑到我在URL中有两个动态部分,你能更新Twiddle以显示我将如何合并它吗?在帮助程序中,observer当前侦听currentRouteName
,将其切换到routing.currentState
。你可以使用-routing
服务,而不是从地址栏解析它。类似于this.get('routing.currentState.routerJsState.params.projects.project\u id')
这是一个很好的解决方案,但是存在一个bug,当我还尝试在//projects/:project\u id/user/:user\u id路由上使用didtransformation操作钩子手动执行时,它不允许我在当前中使用布尔值(通过jquery)将活动类添加到div中,但它也不起作用。因此,这让我更接近了,但在用户页面上,所有项目链接都设置为活动。鉴于URL中有两个动态部分,您能否更新Twiddle以显示如何将其合并?在帮助程序中,observer当前正在收听currentRouteName
,switc将其添加到路由.currentState
。您可以使用-routing
服务,而不是从地址栏解析它。类似于的this.get('routing.currentState.routerJsState.params.projects.project\u id')