Angular `面包屑`-累积,移出页面时不重置
我正在尝试用角形路由器构建一个Angular `面包屑`-累积,移出页面时不重置,angular,router,breadcrumbs,angular8,Angular,Router,Breadcrumbs,Angular8,我正在尝试用角形路由器构建一个面包屑。问题是,我无法重置用户从页面出来时的值 当页面刷新时,除非我使用路由,否则面包屑不会显示 面包屑没有重置,它只是累积了我访问的所有路线 如何修复它?有人帮我吗 ts文件: import { Component, OnInit } from '@angular/core'; import { Router, ActivatedRoute, RoutesRecognized, NavigationEnd, Params, PRIMARY_OUTLET } fro
面包屑。问题是,我无法重置用户从页面出来时的值
当页面刷新时,除非我使用路由,否则面包屑不会显示
面包屑没有重置,它只是累积了我访问的所有路线
如何修复它?有人帮我吗
ts文件:
import { Component, OnInit } from '@angular/core';
import { Router, ActivatedRoute, RoutesRecognized, NavigationEnd, Params, PRIMARY_OUTLET } from '@angular/router';
import { IBOBreadCrumb } from './../../models/models';
import { filter, map } from 'rxjs/operators';
@Component({
selector: 'bread-crumbs',
templateUrl: './bread-crumbs.component.html',
styleUrls: ['./bread-crumbs.component.scss']
})
export class BreadCrumbsComponent implements OnInit {
breadcrumbs = [];
constructor(
private activatedRoute: ActivatedRoute,
private router: Router) { }
ngOnInit() {
this.breadcrumbs = [];
this.router.events
.pipe(filter(event => event instanceof NavigationEnd))
.pipe(map(() => this.activatedRoute))
.pipe(map((route) => {
while (route.firstChild) { route = route.firstChild; }
return route;
}))
.pipe(filter(route => route.outlet === PRIMARY_OUTLET))
.subscribe(route => {
const snapshot = this.router.routerState.snapshot;
const url = snapshot.url;
const routeData = route.snapshot.data;
const label = routeData['breadcrumb'];
const params = snapshot.root.params;
this.breadcrumbs.push({
url: url,
label: label,
params: params
});
});
}
}
html文件:
<nav aria-label='breadcrumb'>
<ol class='breadcrumb'>
<li *ngFor='let breadcrumb of breadcrumbs'>
<a [routerLink]='[breadcrumb.url, breadcrumb.params]' routerLinkActive='active'>{{ breadcrumb.label }}</a> ::|::
</li>
</ol>
</nav>
{{breadcrumb.label}:::::
问题1可能是因为您的代码在所有导航都已完成时运行,所以不会触发任何事件。问题2可以通过移动这个来轻松解决。breadcrumbs=[];在订阅中..作为附加注释-为什么要使用所有管道?请检查此回购协议。尝试在面包屑后面使用服务@Mike如果我错了,你能简化我的代码吗?我有嵌套的孩子,所以问题提出了