javascript - NavigationEnd'in url özelliği undefined döndürüyor (Angular 6)


Ön uç konularında nispeten yeniyim, Angular 6 ile oynuyordum, bu nedenle karşılaştığım sorun, aşağıdaki bileşende NavigationEnd'in undefined dönmesi ve nedenini çözemedim:

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

@Component({
  selector: 'app-sidebar',
  templateUrl: './sidebar.component.html',
  styleUrls: ['./sidebar.component.scss']
})
export class SidebarComponent implements OnInit {
  currentUrl: string;

  constructor(private router: Router) {
    router.events.subscribe(
      (navEnd: NavigationEnd) => this.currentUrl = navEnd.url
    );
  }
}

Cevap #1

router.events farklı olaylara sahiptir, NavigationEnd almak istiyorsanız aşağıdaki gibi filtrelemeniz gerekir. Bunu deneyin,

 router.events
      .pipe(filter(e => e instanceof NavigationEnd))
      .subscribe((e: NavigationEnd) => {
        this.currentUrl = e.url;       
 });

İlgili makaleler