我有一个带有嵌套路由的NG模块。
路径如下所示: http://domain/mainroute/nestedroute
现在,在 sub.component 中,我想根据提供的目标URL(通过用户或外部重定向)来决定重新路由。因此,如果用户直接将嵌套路线作为目标,则我想检查是否让他通过,或者是否将他重定向到其他位置。 为此,我需要找出初始化 sub.component 时输入的URL。
但是,在sub.component
中:
constructer(private router: Router){
console.log(this.router.url)
}
即使输入http://domain/mainroute并直接将其返回,日志仍返回http://domain/mainroute/nestedroute。 这可能是因为导航过程在执行进一步的路由之前先运行sub.component的构造函数。
现在的问题是:在这一点上如何访问完整路线?
答案 0 :(得分:0)
使用ActivatedRoute
获取路径:
constructer(private router: Router,
private activatedRoute: ActivatedRoute){
console.log(activatedRoute.snapshot.url[0].path);
}
答案 1 :(得分:0)
如果要防止在特定情况下进入路线,建议您使用angular guards。它是基于路由器的机制,旨在满足此类需求。
如果问题只是获取目标url地址,恐怕此数据在角度路由器中不可用,但是您可以使用window.location.href