Я пытаюсь добиться следующего:
- У меня есть
mat-toolbar
компонент в app.component.html
, который отображает главную верхнюю панель навигации сайта. Под панелью инструментов находится <router-outlet></router-outlet>
.
- Когда пользователь переходит к корню в
localhost:4200/
, я хочу, чтобы верхняя панель навигации была видимой, а все компоненты, связанные со ссылками в панели навигации, отображались под верхней панелью навигации.
- Проблема теперь в том, что верхняя панель навигации повторяется дважды, когда пользователь переходит к корню. При нажатии на ссылки повторяющаяся панель навигации удаляется, а соответствующий компонент отображается под панелью навигации (что я и хочу без повторения).
Вот это app.module.ts
// initialization and module imports
const RootRoutes: Routes = [
{path: "", redirectTo: "root", pathMatch: "full"},
{path: "root", component: AppComponent, },
//{path: "home", component: HomeComponent },
{path: "fiction", component: FictionDisplayComponent },
{path: "nonfiction", component: NonFictionDisplayComponent},
{path: 'poetry', component: PoetryDisplayComponent},
{path: 'journal', component: JournalDisplayComponent},
{path: 'letters', component: PersonalLetterDisplayComponent},
{path: 'jokes', component: JokesDisplayComponent}
];
// NgModule declaration
Вот как app.component.html
настроен:
<div class="pure-g rr-main-wrapper">
<div class="pure-u-5-5 home-top-navbar-wrapper">
<rr-home-top-navbar></rr-home-top-navbar>
</div>
</div>
<router-outlet></router-outlet>
Вот как home-top-navbar.component.html
настроен:
<mat-toolbar color="primary" class="home-top-nav">
<mat-toolbar-row>
<img src="./../../assets/imgs/logo2.png" width="200" height="50">
<mat-nav-list class="home-top-nav">
<mat-list-item *ngFor="let route of navbarRoutes">
<a [routerLink]="[route.url]" class="navbar-link">{{ route.name }}</a>
</mat-list-item>
</mat-nav-list>
</mat-toolbar-row>
Теперь, если вы заметили, что есть закомментированный путь, {path: 'home', component: HomeComponent}
где, я попытался загрузить панель инструментов отдельно и у меня было только <router-outlet></router-outlet>
в app.component.html
. Однако проблема заключается в том, что при нажатии на ссылку страница переходит к исправленному компоненту,
верхняя панель навигации больше не видна (что ожидается, поскольку другие компоненты не повторяют код панели навигации).
Есть ли способ достичь этого, не повторяя панель инструментов дважды, когда пользователь переходит к корню? Можно ли это сделать без копирования / вставки панели навигации на каждой странице для компонентов верхнего уровня?