Je dois obtenir l'URL actuelle présente dans le navigateur dans mon application Angular 2.
En JavaScript, nous le faisons normalement en utilisant l'objet window.
Comment puis-je faire cela dans Angular 2 en utilisant TypeScript?
Merci.
C’est tard, mais j’ai pensé que cela valait la peine d’être mis à jour. À partir de la version finale d'Angular2, vous pouvez importer DOCUMENT à partir de @ angular/common et l'utiliser pour accéder à l'emplacement.
import { Component, Inject } from '@angular/core';
import { DOCUMENT } from '@angular/common';
...
export class YourComponent {
constructor(@Inject(DOCUMENT) private document: Document) {
console.log(this.document.location.href);
}
}
Il n'est pas nécessaire d'importer des packages compliqués ou d'injecter quelque chose. Utilisez simplement les méthodes que vous pouvez trouver sur window.location
!
Tel que:
window.location.href
vous donne l'URL complètewindow.location.hostname
vous donne le nom d'hôtewindow.location.Origin
avec cette commande, vous obtenez le nom d'hôte avec le protocole (par exemple, https: //)Pour IE <= 10 utilisateurs: location.Origin peut ne pas être disponible, vous devez alors utiliser
location.protocol + "//" + location.hostname
ou utilisez un polyfill ou un paquet tel quelocation-Origin
Importez ActivatedRoute (et le reste du matériel du routeur également, si vous le souhaitez)
import { ActivatedRoute, Params, Router, UrlSegment } from '@angular/router';
en s'assurant qu'il est injecté dans le constructeur,
constructor(private route: ActivatedRoute) { ... }
et sur ngOnInit, vous pouvez utiliser this.route
pour inspecter l'URL. Par exemple, tous les segments sont dans un tableau, que vous pouvez chaîner, comme suggéré par @ibgib, comme ceci:
let path = this.route.snapshot.url.join('/');
pour vous donner quelque chose comme "mars/lunes/phobos".
Pour les futurs voyageurs, beaucoup d'autres réponses sont bonnes. Une autre option, si vous voulez tout avant le nom du chemin (par exemple, https://example.com
) alors vous pouvez utiliser:
window.location.Origin
Voici un article de W3 sur les différents window.location
propriétés que vous pouvez utiliser: http://www.w3schools.com/js/js_window_location.asp
À votre santé!
Vous pouvez
Location
et obtenir l'URL par location.path()
(voir aussi Location et HashLocationStrategy ont cessé de fonctionner en version bêta 16 )window.location.pathname
Voir également
Comment puis-je obtenir le chemin absolu de la page en cours en Angular 2?
Ceci Lien m'a aidé à:
public static getCurrentAbsoluteSiteUrl(): string {
if (window
&& "location" in window
&& "protocol" in window.location
&& "pathname" in window.location
&& "Host" in window.location) {
return window.location.protocol + "//" + window.location.Host + window.location.pathname;
}
return null;
}