如何获得Angular 5中的当前路线

时间:2018-06-19 05:09:10

标签: angular typescript angular-routing

我在{ provide: LocationStrategy, useClass: HashLocationStrategy },中使用app.module.ts。但是,当我提供this.route.url时,它始终包含/,无论我是/home还是/dashboard还是/profile

我需要获得特定的路线值

constructor(public router:Router) {} alert(this.router.url);

3 个答案:

答案 0 :(得分:4)

您的route个实例应来自Router

constructor(
    private router: Router
  ) { }

this.router.url // this must contains your full router path

答案 1 :(得分:4)

不确定这是否适用于v5,但仍可能会有所帮助

您还可以订阅路由器事件NavigationEnd,这似乎是始终获取当前URL的最佳方法。

重要说明:
-确保将此代码放在contructor()文件的app.component.ts中,以便始终获取最后一个url值。


// file: src/app/app-component

  export class AppComponent {
  constructor(private router: Router) {

    // listen to events from Router
    this.router.events.subscribe(event => {
      if(event instanceof NavigationEnd) {
        // event is an instance of NavigationEnd, get url!  
        const url = event.urlAfterRedirects;
        console.log('url is', url);
      }
    })

  }
}

答案 2 :(得分:0)

如果您不希望哈希成为URL的一部分,则使用hash false,如下面的代码所示:

  RouterModule.forRoot([
  {path: 'welcome', component: WelcomeComponent},
  {path: '', redirectTo: 'welcome', pathMatch: 'full'},
  {path: '**', component: PageNotFoundComponent},
], {useHash: false}),
ProductModule,

我希望它有所帮助