Я реализовал хлебную крошку, используя ng7-dynamic-breadcrumb.Я застрял в навигации уровня 2 в своем приложении CRUD.
Ожидается, что при изменении URL-адреса хлебная крошка должна обновиться соответствующим образом.
Пример: Рабочий URL: `http://localhost:4200/technicalSettings/disciplines?disciplineId=5250 это работает нормальнокак
Disciplines
Но когда я изменяю URL для операции создания, используя ng-шаблоны, такие как
http://localhost:4200/technicalSettings/disciplines?disciplineId=5250&disciplineView=create
Ожидаемая хлебная крошка Disciplines > create
к сожалению это не работает.Эксперт посоветуете пожалуйста?
Маршрутизация TS
const technicalSettingsRoutes: Routes = [
{
path: "",
canActivateChild: [AuthGuard],
children: [
{
path: "disciplines",
component: DisciplinesComponent,
data: {
title: 'disciplines',
breadcrumb: [
{
label: 'Disciplines',
url: ''
}
]
}
},
{
path: "disciplines:disciplineId",
component: DisciplinesComponent,
data: {
title: 'Disciplines',
breadcrumb: [
{
label: 'disciplines',
url: 'disciplines'
},
{
label: 'page {{customText}}',
url: ''
}
]
},
},
{ path: "", component: DisciplinesComponent, data: { breadcrumb: 'disciplines' } }
Компонент TS
updateBreadcrumb(): void {
const breadcrumbs = [
{
label: 'Disciplines',
url: 'disciplines'
},
{
label: 'Create New',
url: ''
}
];
this.ngDynamicBreadcrumbService.updateBreadcrumb(breadcrumbs);
}
disciplineCrudViews(view: any, openStatus: boolean) {
this.openView = openStatus;
this.switchView = view;
if(view == "create") {
this.updateBreadcrumb();
}
this.router.navigate([], { queryParams: { disciplineId: this.selectedId, disciplineView: view } });
}
onRowClicked(event: any) {
this.isRowSelected = true;
this.selectedId = event.data.id; //event.id;
this.selectedItem = event;
console.log(this.selectedItem);
this.dataService.set(event);
this.router.navigate([], { queryParams: { disciplineId: this.selectedId } });
}
ngOnInit() {
const breadcrumb = {customText: 'This is Custom Text', dynamicText: 'Level 2 '};
this.ngDynamicBreadcrumbService.updateBreadcrumbLabels(breadcrumb);
}