目前的文档只讨论了获取路由参数,而不是实际的路由段。

例如,如果我想找到当前路由的父,这是怎么可能的?


当前回答

我也有同样的问题

this.router.url

我用查询参数获取当前路由。我做的一个变通方法是使用这个:

this.router.url.split('?')[0]

这不是一个很好的解决方案,但很有帮助。

其他回答

为了可靠地获得完整的当前路由,您可以使用这个

this.router.events.subscribe(
  (event: any) => {
    if (event instanceof NavigationEnd) {
      console.log('this.router.url', this.router.url);
    }
  }
);

到目前为止,我的路径如下-

this.router.url.subscribe(value => {
    // you may print value to see the actual object
    // console.log(JSON.stringify(value));
    this.isPreview = value[0].path === 'preview';
})

其中,路由器是ActivatedRoute的一个实例

要在angular 8中获取当前路由器,只需这样做

import {ActivatedRoute} from '@angular/router';

然后在构造函数中注入它

constructor(private route: ActivatedRoute){}

如果你想获取当前路由,那么使用这个route.url

如果你有多个名称路由,比如/home/pages/list你想访问单个,那么你可以访问每个,比如这个route。url。value[0]。path

值[0]会给你主页,值[1]会给你页面,值[2]会给你列表

我也有同样的问题

this.router.url

我用查询参数获取当前路由。我做的一个变通方法是使用这个:

this.router.url.split('?')[0]

这不是一个很好的解决方案,但很有帮助。

这个是在Angular 11上测试的

constructor(private router: Router) {
  this.router.events
   .pipe(filter((event: any) => event instanceof NavigationEnd))
   .subscribe((event: any) => {
     this.currentRoute = event.url;
     console.log(event);
   });
 }