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