我在{ provide: LocationStrategy, useClass: HashLocationStrategy },
中使用app.module.ts
。但是,当我提供this.route.url
时,它始终包含/
,无论我是/home
还是/dashboard
还是/profile
我需要获得特定的路线值
constructor(public router:Router) {} alert(this.router.url);
答案 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,
我希望它有所帮助