it-swarm.com.de

Angular 2 Aktuelle Route abrufen

Ich muss also irgendwie nachsehen, ob ich auf der Startseite bin und etwas mache und auf anderen Seiten nicht. Auch diese Komponente wurde auf allen Seiten importiert.

Wie kann ich an dieser Komponente erkennen, ob ich auf der Startseite bin ???

Vielen Dank

10
Aram Mkrtchyan

Versuche dies,

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

Versuch es

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

Versuchen Sie es mit dem nativen Fensterobjekt.

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

Ich wollte gerade diese Frage beantworten, aber ich habe dieselbe Antwort mit BigBrother. Diese Antwort ist für diejenigen gedacht, die "#" für ihre URL verwenden, da sie bei einem bestimmten Router-Standortcode nur "/" zurückgeben.

Dies ist ein Beispielcode eines meiner Projekte: 

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);
      }
  }
});

Daher wird Popup nur angezeigt, wenn die aktuelle Route nicht "/ admin" ist.

0
CJ Zetroc

Wenn Sie die vollständige URL wünschen, verwenden Sie die LOCATION-Instanz wie folgt: -

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

Wenn Sie eine relative URL wünschen, verwenden Sie die ROUTER-Instanz: -

this.router.url = securelogin?name=batman

Folgen Sie dem vollständigen Snippet wie folgt basierend auf Winkel 4: - 

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

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

Sie können den Angular Location Service verwenden.

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

Sie können auf den Pfad zugreifen mit:

location.path();
0
Sarat Chandra