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?
5 Réponses :
Vous pouvez utiliser ActivatedRoute
import { ActivatedRoute} from @angular/router'; constructor( private route: ActivatedRoute) { this.route.params.subscribe(res => { if(res.id) { //your code } }) }
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.
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; }
Avez-vous répondu à cette question ou à une autre?
Vous l'aurez dans route.routeConfig.path
:
canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { console.log(route.routeConfig.path); }
Merci @Thirumalai murugan
@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é
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']); }
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;
}
Essayez parmi les options fournies ici si cela vous aide - stackoverflow.com / questions / 34597835 / comment-obtenir-la-route-actuelle