Quando si utilizza Router (this.router.url
) Sono ottenere la stringa /list?type=abc
, a volte /list
...angolare 2: Come ottenere solo percorso dalla piena stringa URL
Posso solo ottenere il percorso /list
dal URL completo?
Grazie mille!
Quando si utilizza Router (this.router.url
) Sono ottenere la stringa /list?type=abc
, a volte /list
...angolare 2: Come ottenere solo percorso dalla piena stringa URL
Posso solo ottenere il percorso /list
dal URL completo?
Grazie mille!
È possibile utilizzare lo snapshot del componente di percorso attivato per ottenere questo URL.
import { Router, ActivatedRoute } from '@angular/router';
constructor(
private router: Router,
private activatedRoute: ActivatedRoute) {
console.log("routes");
console.log(activatedRoute.snapshot.url); // array of states
console.log(activatedRoute.snapshot.url[0].path);
}
Link originale SO rispondere da Jose G Varanam How to get current route
L'user5049376 risposta ha dato non ha funzionato per me. la proprietà dell'URL non era definita.
console.log(activatedRoute.snapshot.url[0].path);
anziché utilizzare la proprietà firstChild.
console.log(this.activatedRoute.snapshot.firstChild.url[0].path);
Posso anche confermare che 'activatedRoute.snapshot.url [0] .path 'lancia un' TypeError: impossibile leggere la proprietà 'path' di undefined'. La soluzione che ha funzionato per me è 'activatedRoute.snapshot.firstChild.url [0] .path'. Sto usando Angular 4.0.0 e Angular CLI 1.1.0. – kimbaudi
Questo funziona per me.
Import questo:
import { Router } from '@angular/router';
poi passarlo al costruttore:
path: any;
constructor(private router: Router) {
this.path = this.router.url;
console.log(this.path);
}
Se c'è una querystring che è inclusa nel percorso, quindi non è proprio il percorso. –
se si ricarica la pagina, non è possibile ottenere il percorso tracciato dal router o ActivatedRoute. È possibile utilizzare window.location.pathname
anziché quello.
Hai salvato la mia giornata :) – Ismaestro
Ho provato a utilizzare le altre risposte e tutte si ritrovano con non definito.
Quindi ho fatto questo:
#AppComponent
constructor(private router: Router){
// Subscribe to RouterEvents
this.router.events
.subscribe((event) => {
if (event instanceof NavigationStart) {
// Could add more chars url:path?=;other possible
const urlDelimitators = new RegExp(/[?//,;&:#$+=]/);
let currentUrlPath = event.url.slice(1).split(urlDelimitators)[0];
console.log('URL_PATH: ', currentUrlPath);
}
});
}
mi iscrivo al router cambia in modo che quando NavitionStartEvent accade una nuova URL_PATH viene trovato.
Ottengo "TypeError: Impossibile leggere la proprietà 'percorso' di undefined" per l'ultima istruzione 'console.log' –
' snapshot.url' non restituisce gli stati dalla radice. Ho questa soluzione 'this.route.snapshot.pathFromRoot.map (o => o.url [0]) join ('/')' – NinjaOnSafari