【发布时间】:2019-11-06 09:55:01
【问题描述】:
我很难让我的路由器了解我们在某个页面上,并且它应该在导航中显示为活动状态。情况如下:
this.route('mainRoute', function() {
this.route('list');
});
我们感兴趣的路径是/mainRoute。不幸的是,有很多指向 /mainRoute/list 的旧链接。解决方法是从 /mainRoute/list 组件重定向回 /mainRoute 组件。
beforeModel() {
this.replaceWith('/mainRoute');
}
现在,我的问题是 /mainRoute 导航链接永远不会被视为活动。我尝试为 /mainRoute 添加路径('/'、'/mainRoute'、'mainRoute'),我尝试将其转换为资源和一堆其他我想到的东西。但它要么不起作用,要么进入无限重定向循环。
对此有什么想法吗?非常感谢,我真的需要一个解决方案!
【问题讨论】:
-
你为什么用
replaceWith()而不是redirect? -
我不知道原因,不是我的代码
-
IMO 使用
current-when或pathRegex似乎没有解决问题的根源,而只是在顶部添加另一个脆弱层以隐藏症状。我没有使用replaceWith(),但是使用redirect(),重定向的路由应该在成功转换后变为活动状态,<linkTo>应该反映这一点。
标签: ember.js routing ember-router