11import { Injectable } from '@angular/core' ;
2- import { Router , ActivatedRoute , NavigationEnd } from '@angular/router' ;
2+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop' ;
3+ import { ActivatedRoute , NavigationEnd , Router } from '@angular/router' ;
34import { BehaviorSubject , Observable } from 'rxjs' ;
45import { filter } from 'rxjs/operators' ;
56import { IBreadcrumbItem } from '../breadcrumb-item/breadcrumb-item' ;
67
78@Injectable ( {
8- providedIn : 'root' ,
9+ providedIn : 'root'
910} )
1011export class BreadcrumbRouterService {
1112 public outlet = 'primary' ;
@@ -21,7 +22,10 @@ export class BreadcrumbRouterService {
2122 this . breadcrumbs$ = this . breadcrumbsBehaviorSubject . asObservable ( ) ;
2223
2324 this . router . events
24- . pipe ( filter ( ( event ) => event instanceof NavigationEnd ) )
25+ . pipe (
26+ takeUntilDestroyed ( ) ,
27+ filter ( ( event ) => event instanceof NavigationEnd )
28+ )
2529 . subscribe ( ( event ) => {
2630 const breadcrumbs : any [ ] = [ ] ;
2731 let currentRoute : ActivatedRoute | null = this . route . root ;
@@ -33,13 +37,11 @@ export class BreadcrumbRouterService {
3337 // console.log('breadcrumb event', event, 'route', route);
3438 if ( childRoute . outlet === this . outlet ) {
3539 const routeSnapshot = childRoute . snapshot ;
36- url +=
37- '/' +
38- routeSnapshot . url . map ( ( segment ) => segment . path ) . join ( '/' ) ;
40+ url += '/' + routeSnapshot . url . map ( ( segment ) => segment . path ) . join ( '/' ) ;
3941 breadcrumbs . push ( {
4042 label : childRoute . snapshot . data [ 'title' ] || '' ,
4143 url,
42- queryParams : routeSnapshot . queryParams ,
44+ queryParams : routeSnapshot . queryParams
4345 } ) ;
4446 currentRoute = childRoute ;
4547 }
0 commit comments