J'utilise { provide: LocationStrategy, useClass: HashLocationStrategy },
dans mon app.module.ts
. Mais quand je donne this.route.url
, il contient toujours /
que je sois dans /home
ou /dashboard
ou /profile
J'ai besoin d'obtenir la valeur de route particulière
constructor(public router:Router) {} alert(this.router.url);
Votre instance route
devrait être de Router
constructor(
private router: Router
) { }
this.router.url // this must contains your full router path
Je ne sais pas si cela s'applique à la v5, mais cela peut aider quand même
Vous pouvez également vous abonner à l'événement de routeur NavigationEnd. Cela semble être le meilleur moyen de toujours obtenir l'URL actuelle.
notes IMPORTANTES:
- assurez-vous de placer ce code dans la contructor()
du fichier app.component.ts
, afin de toujours obtenir la dernière valeur de l'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);
}
})
}
}
Si vous ne voulez pas que le hash fasse partie de l'URL, utilisez hash false comme indiqué dans le code ci-dessous:
RouterModule.forRoot([
{path: 'welcome', component: WelcomeComponent},
{path: '', redirectTo: 'welcome', pathMatch: 'full'},
{path: '**', component: PageNotFoundComponent},
], {useHash: false}),
ProductModule,
J'espère que ça aide