要求非常简单 . 当直接在浏览器中输入子路由/组件的URL时,我应该能够将其重定向到父路由 .
问题:
1.如何识别页面刷新或是否直接启动子路由?
2.如果直接启动子路由,如何从ActivatedRoute对象获取其父路由URL?
解决方案:
我在Child Component的OnInit中有以下代码:
this.router.events.subscribe((event) => {
console.log(event);
});
从父路由导航时,将记录路由器事件 . 但是,直接启动子URL时,不会记录任何事件 .
还尝试了路由配置中的canActivateChild,但不知道如何确定是否加载了父组件?
任何帮助表示赞赏 . 提前致谢!
1 回答
如果您可以向服务器添加重定向规则或中间件,那么它将是最简单的,例如 . 将
/straight_to_children_no_go/**
重定向到/straight_to_children_no_go
. 在通常的** - > index.html -rule之前添加它 .如果没有,那么有很多(hacky)角度的方式,如果有人能想到一种我想知道的更清洁的方式 . 例如 . 它可能是链接上的指令,当点击时,标记服务中的标志,表示此路线可以转到,并基于此构建canActivate防护 .