web-dev-qa-db-fra.com

Angular 2 Obtenir l'itinéraire actuel

Il faut donc que je vérifie si je suis sur la page d'accueil et que je fais quelque chose et que dans d'autres pages, ne le faites pas. Aussi ce composant importé sur toutes les pages.

Comment puis-je détecter sur ce composant si je suis sur la page d'accueil ???

Merci

10
Aram Mkrtchyan

Essaye ça,

import { Router } from '@angular/router';
export class MyComponent implements OnInit {

    constructor(private router:Router) { ... }

    ngOnInit() {
        let currentUrl = this.router.url; /// this will give you current url

        // your logic to know if its my home page.
    }

}
36
Vivek Singh

L'essayer

import { Component } from '@angular/core';
import { Router, NavigationEnd } from '@angular/router';

@Component({...})

export class MyComponent {

  constructor(private router:Router) {

    router.events.subscribe(event => {

      if (event instanceof NavigationEnd ) {
        console.log("current url",event.url); // event.url has current url
        // your code will goes here
      }
    });
  }
}
28
Pankaj Anupam

Essayez l'une de celles-ci à partir de l'objet window natif.

console.log('URL:' + window.location.href);
console.log('Path:' + window.location.pathname);
console.log('Host:' + window.location.Host);
console.log('Hostname:' + window.location.hostname);
console.log('Origin:' + window.location.Origin);
console.log('Port:' + window.location.port);
console.log('Search String:' + window.location.search);
2
Sanket Berde

J'étais sur le point de répondre à cette question mais j'ai la même réponse avec BigBrother. Cette réponse s'adresse à ceux qui utilisent "#" sur leur URL car ils ne renvoient que "/" sur un code d'emplacement de routeur.

Voici un exemple de code d'un de mes projets: 

this.router.events.subscribe((event)  => {
  if(event instanceof NavigationEnd) {
      this.currentPage =  event.url;
      if ( event.url != '/admin') {
        setTimeout(()=>{
            this.modalRef = this.modalService.show(ModalSurveyComponent,this.config);
        }, 3000);
      }
  }
});

Donc Pop up ne montrera que si le chemin actuel n'est pas "/ admin"

0
CJ Zetroc

Si vous voulez l'URL complète, utilisez l'instance LOCATION comme suit: -

([Location][1])location.href = https://test-mydomain.com/#/securelogin?name=batman

& si vous voulez une URL relative, utilisez l’instance ROUTER suivante: -

this.router.url = securelogin?name=batman

Suivez l'extrait complet comme suit, en vous basant sur l'angle 4: - 

constructor( private router: Router) {
  console.log(this.router.url);
/**
* securelogin?name=batman
*/

  console.log(location.href);
/**
* https://test-mydomain.com/#/securelogin?name=batman
*/
}
0

Vous pouvez utiliser le service de localisation angulaire.

import { Location } from '@angular/common';

Vous pouvez accéder au chemin en utilisant:

location.path();
0
Sarat Chandra