要求非常简单。当直接在浏览器中输入子路由/组件的URL时,我应该能够将其重定向到父路由。
问题:
1。如何识别页面刷新或直接启动子路由?
2。如果直接启动子路由,如何从ActivatedRoute对象获取其父路由URL?
解决方案:
我在Child Component的OnInit中有以下代码:
SELECT group_id
FROM groups
WHERE group_id NOT IN (SELECT group_id
FROM users_groups
WHERE user_id = 4);
从父路线导航时,正在记录路由器事件。但是直接启动子URL时,不会记录任何事件。
还在路由配置中尝试了 canActivateChild ,但不知道如何确定父组件是否已加载?
任何帮助表示赞赏。在此先感谢!
答案 0 :(得分:0)
如果您可以向服务器添加重定向规则或中间件,那么它将是最简单的,例如。将/straight_to_children_no_go/**
重定向到/straight_to_children_no_go
。在通常的**之前加上 - > index.html -rule。
如果没有,如果有人能想到一种我想知道的更干净的方式,那么角度就会有很多(黑客)方式。例如。它可以是链接上的指令,当点击时,标记服务中的标志,表示这条路线可以去,并基于此建立一个canActivate防护。