Les documents actuels ne parlent que de l'obtention des paramètres d'itinéraire, pas des segments d'itinéraire réels.
Par exemple, si je veux trouver le parent de l'itinéraire actuel, comment est-ce possible?
angular
angular2-routing
pdeva
la source
la source
window.location.pathname
window.location
est que si à l'avenir, ils veulent implémenter le rendu côté serveur, ils rencontreront des difficultés car ilswindow
n'existent pas sur le serveur Node.js, mais ils doivent utiliser les méthodes standard angulaires pour accéder à la route et ils iront bien sur le serveur et le navigateur.Réponses:
Le nouveau routeur V3 a une propriété url.
la source
this.router.events.filter((event: any) => event instanceof NavigationEnd).subscribe(event => { console.log('this is what your looking for ', event.url); });
. Assurez-vous d'importerimport { Router, NavigationEnd } from '@angular/router';
RC4 angulaire:
Vous pouvez importer
Router
de@angular/router
Ensuite, injectez-le:
Appelez ensuite son paramètre URL:
la source
Injectez
Location
dans votre composant et lisezlocation.path();
Vous devez ajouterVous devez ajouterROUTER_DIRECTIVES
quelque part pour que Angular puisse résoudreLocation
.import: [RouterModule]
au module.Mise à jour
Dans le routeur V3 (RC.3), vous pouvez injecter
ActivatedRoute
et accéder à plus de détails en utilisant sasnapshot
propriété.ou
Voir aussi Écouteur d'événement de routeur Angular 2
la source
navigate
méthode avec le nom (ajouté) de la route enfant vers laquelle je veux naviguer.MyTrackingService
expliqué dans stackoverflow.com/a/34548656/217408 permettrait d'accéder à ces valeurs.canActivate()
méthode, afin que je puisse rediriger vers une page « connexion », puis rediriger retour à l'itinéraire initial après les authentifie utilisateur?pour nouveau routeur> = RC.3
Le meilleur et un moyen simple de le faire est!
la source
Utilisez ceci
Et en
main.ts
importationÉDITER
Manière moderne
la source
/
.Pour ceux qui le recherchent encore. Sur Angular 2.x, il existe plusieurs façons de le faire.
Références:
la source
Pour obtenir les segments d'itinéraire:
la source
Vous pouvez essayer avec
Des moyens alternatifs
window.location.pathname
qui donne le nom du chemin.la source
Pour obtenir de manière fiable l'itinéraire complet actuel, vous pouvez utiliser ce
la source
L'
window
objet natif fonctionne également très bienREMARQUE: NE PAS UTILISER CELA DANS LE RENDU CÔTÉ SERVEUR
la source
version courte si vous avez importé un routeur, vous pouvez simplement utiliser quelque chose comme
this.router.url === "/ recherche"
sinon faites ce qui suit
1) Importez le routeur
2) Déclarez son entrée dans constructeur
3) Utilisez sa valeur dans votre fonction
@victor answer m'a aidé, c'est la même réponse que lui mais avec un petit détail, car cela pourrait aider quelqu'un
la source
la source
Dans Angular2 Rc1, vous pouvez injecter RouteSegment et les passer en méthode naviagte.
la source
Avec angular 2.2.1 (dans un projet basé sur angular2-webpack-starter) cela fonctionne:
Dans le modèle d'AppComponent, vous pouvez utiliser par exemple {{activeUrl}}.
Cette solution est inspirée du code de RouterLinkActive.
la source
angulaire 2 rc2
la source
Voici ce qui fonctionne pour moi dans Angular 2.3.1.
Le
data
est un objet et nous avons besoin de laurl
propriété contenue dans cet objet. Nous capturons donc cette valeur dans une variable et nous pouvons également utiliser cette variable dans notre page HTML. Par exemple, je souhaite afficher un div uniquement lorsque l'utilisateur est sur la page d'accueil. Dans ce cas, la valeur URL de mon routeur sera/home
. Je peux donc écrire un div de la manière suivante:la source
J'ai eu le même problème avec
J'obtiens l'itinéraire actuel avec les paramètres de requête. Une solution de contournement que j'ai faite utilisait ceci à la place:
Pas vraiment une bonne solution, mais utile.
la source
Vous pouvez utiliser
ActivatedRoute
pour obtenir le routeur actuelRéponse originale (pour la version RC)
J'ai trouvé une solution sur AngularJS Google Group et c'est si simple!
Voici la réponse originale
https://groups.google.com/d/msg/angular/wn1h0JPrF48/zl1sHJxbCQAJ
la source
url
maintenant n'est plus l'URL et une chaîne, mais aComponentInstruction
.la source
Pour vos besoins, vous pouvez utiliser
this.activatedRoute.pathFromRoot
.Avec l'aide de pathFromRoot, vous pouvez obtenir la liste des URL des parents et vérifier si la partie nécessaire de l'URL correspond à votre condition.
Pour plus d'informations, veuillez consulter cet article http://blog.2muchcoffee.com/getting-current-state-in-angular2-router/ ou installer ng2-router-helper à partir de npm
la source
Pour trouver le parent de l'itinéraire actuel, vous pouvez l'obtenir
UrlTree
auprès du routeur, en utilisant des itinéraires relatifs:Ensuite, pour obtenir les segments de la sortie principale:
la source
À partir de maintenant, je reçois mon chemin comme suit -
Où
router
est une instance deActivatedRoute
la source
la source
la source
c'est simple, dans angular 2 il vous suffit d'importer la bibliothèque du routeur comme ceci:
Ensuite, dans le constructeur du composant ou du service, vous devez l'instancier comme ceci:
Puis dans n'importe quelle partie du code, soit dans une fonction, une méthode, une construction, peu importe:
la source
Vous pouvez utiliser dans le fichier .ts
la source
cela pourrait être votre réponse, utilisez la méthode params de la route activée pour obtenir le paramètre de l'URL / route que vous souhaitez lire, ci-dessous un extrait de démonstration
la source
la source
Si vous devez accéder à l'URL actuelle, vous devez généralement attendre que NavigationEnd ou NavigationStart fasse quelque chose. Si vous venez de vous abonner aux événements du routeur, l'abonnement générera de nombreux événements dans le cycle de vie de l'itinéraire. Utilisez plutôt un opérateur RxJS pour filtrer uniquement l'événement dont vous avez besoin. L'effet secondaire bénéfique de ceci est maintenant que nous avons des types plus stricts!
la source
J'étais confronté au problème où j'avais besoin du chemin URL lorsque l'utilisateur navigue dans l'application ou accède à une URL (ou actualise sur une URL spécifique) pour afficher les composants enfants basés sur l'URL.
De plus, je veux un observable qui peut être consommé dans le modèle, donc router.url n'était pas une option. Pas plus que l' abonnement router.events car le routage est déclenché avant l'initialisation du modèle du composant.
J'espère que ça aide, bonne chance!
la source