web-dev-qa-db-fra.com

Comment obtenir l'itinéraire actuel dans Angular 5

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);

4
Krishna

Votre instance route devrait être de Router

constructor(
    private router: Router
  ) { }

this.router.url // this must contains your full router path
4
Pardeep Jain

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);
      }
    })

  }
}
0
guillefd

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 

0
debugmode