1
votes

Chemin d'URL correspondant angulaire dans Guard

mon routage est

canActivateChild( route: ActivatedRouteSnapshot,
state: RouterStateSnapshot) { 
  console.log(state.url); 
}

dans

{
path:'contacts/:id',
component: contactDetail
}

state.url retourne / contacts / 1 ce que je le besoin correspond à l'url / contact /: id existe-t-il des possibilités d'obtenir une URL correspondante?


1 commentaires

Essayez parmi les options fournies ici si cela vous aide - stackoverflow.com / questions / 34597835 / comment-obtenir-la-route-actuelle


5 Réponses :


0
votes

Vous pouvez utiliser ActivatedRoute

import { ActivatedRoute} from @angular/router';
 constructor( private route: ActivatedRoute) {
    this.route.params.subscribe(res => {
    if(res.id) { //your code }
    })
}


3 commentaires

merci pour votre temps, désolé de le dire, son projet angulaire n'est pas ionique et plus que mon besoin de base est d'obtenir l'URL correspondante / contact /: id en garde


@Thirumalaimurugan désolé, s'il vous plaît voir la réponse mise à jour


Veuillez examiner la question, j'ai besoin d'une URL correspondante en garde, le travail est la dernière étape qui aussi j'en ai besoin en garde pas dans le composant, désolé, pour votre commodité, j'ai également supprimé ce travail autour des points.



1
votes

vous pouvez essayer ce code.

canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {

        const currentUser = this.authenticationService.currentUserValue;
        if (currentUser) {
            // authorised so return true
            return true;
        }
        // not logged in so redirect to login page with the return url
        this.router.navigate(['/account']);
        return false;
    }


1 commentaires

Avez-vous répondu à cette question ou à une autre?



1
votes

Vous l'aurez dans route.routeConfig.path:

canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { 
  console.log(route.routeConfig.path);
}

Merci @Thirumalai murugan


3 commentaires

@Thirumalaimurugan vous avez raison, cela fonctionne pour canActivate et pas pour canActivateChild . J'ai mis à jour ma réponse.


route.routeConfig.path renvoie le résultat


Vous avez raison. Cela fait. il y a les deux pointant vers le même endroit. mais ce chemin correspond mieux. Je mettrai à jour ma réponse. à votre santé



0
votes

En utilisant ActivatedRouteSnapshot, vous pouvez obtenir la route avec ses paramètres. Vérifiez si le code ci-dessous vous aide.

canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
    console.log(next['routeConfig']['path']);
}


0 commentaires

0
votes

Vous pouvez utiliser l'instruction suivante:

canActivate(
  next: ActivatedRouteSnapshot,
  state: RouterStateSnapshot
 ): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean |     
UrlTree {
console.log(next.queryParams);
console.log(next.params);

return true;

}


0 commentaires