首页 文章

Angular 4 - 如何在直接启动子路由URL时重定向到父路由?

提问于
浏览
0

要求非常简单 . 当直接在浏览器中输入子路由/组件的URL时,我应该能够将其重定向到父路由 .
问题:
1.如何识别页面刷新或是否直接启动子路由?
2.如果直接启动子路由,如何从ActivatedRoute对象获取其父路由URL?

解决方案:
我在Child Component的OnInit中有以下代码:

this.router.events.subscribe((event) => {
  console.log(event);
});

从父路由导航时,将记录路由器事件 . 但是,直接启动子URL时,不会记录任何事件 .
还尝试了路由配置中的canActivateChild,但不知道如何确定是否加载了父组件?
任何帮助表示赞赏 . 提前致谢!

1 回答

  • 0

    如果您可以向服务器添加重定向规则或中间件,那么它将是最简单的,例如 . 将 /straight_to_children_no_go/** 重定向到 /straight_to_children_no_go . 在通常的** - > index.html -rule之前添加它 .

    如果没有,那么有很多(hacky)角度的方式,如果有人能想到一种我想知道的更清洁的方式 . 例如 . 它可能是链接上的指令,当点击时,标记服务中的标志,表示此路线可以转到,并基于此构建canActivate防护 .

相关问题