@coreui/ajax
Version:
Open Source Bootstrap Admin Template
45 lines (43 loc) • 1.55 kB
text/typescript
import { Component } from '@angular/core';
import { Router, ActivatedRoute, NavigationEnd } from '@angular/router';
import 'rxjs/add/operator/filter';
export class BreadcrumbsComponent {
breadcrumbs: Array<Object>;
constructor(
private router: Router,
private route: ActivatedRoute
) {
this.router.events.filter(event => event instanceof NavigationEnd).subscribe((event) => {
this.breadcrumbs = [];
let currentRoute = this.route.root,
url = '';
do {
const childrenRoutes = currentRoute.children;
currentRoute = null;
childrenRoutes.forEach(route => {
if (route.outlet === 'primary') {
const routeSnapshot = route.snapshot;
url += '/' + routeSnapshot.url.map(segment => segment.path).join('/');
this.breadcrumbs.push({
label: route.snapshot.data,
url: url
});
currentRoute = route;
}
});
} while (currentRoute);
});
}
}