#angular #angular-material #angular-schematics
#angular #angular-материал #angular-schematics
Вопрос:
Привет, я пытаюсь добавить схему навигации в свой проект, в котором первая ссылка будет отображать панель мониторинга, поэтому, когда страница отображается первой, она должна отображать панель мониторинга. Позже я добавлю дополнительные ссылки. Проблема в том, что когда я пытаюсь добавить компонент панели мониторинга с помощью routerLink внутри ссылки схемы навигации, он никогда не отображает панель мониторинга. Однако, когда я вызываю компонент панели мониторинга непосредственно внутри моего app.component.html панель отображается правильно.
Пожалуйста, обратите внимание, что точно так же работает и отображает панель в Angular 6
Я перепробовал все возможные комбинации для routerLink, но это не работает
Вот как я настроил app.module.ts
import { Routes, RouterModule } from '@angular/router';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { LayoutModule } from '@angular/cdk/layout';
import { MatToolbarModule, MatButtonModule, MatSidenavModule, MatIconModule, MatListModule, MatGridListModule, MatCardModule, MatMenuModule, MatTableModule, MatPaginatorModule, MatSortModule } from '@angular/material';
import { AdminConsoleNavComponent } from './admin-console-nav/admin-console-nav.component';
import { AdminConsoleDashboardComponent } from './admin-console-dashboard/admin-console-dashboard.component';
const appRoutes: Routes = [
{ path: '', component: AdminConsoleDashboardComponent }
]
@NgModule({
declarations: [
AppComponent,
AdminConsoleNavComponent,
AdminConsoleDashboardComponent
],
imports: [
BrowserModule,
AppRoutingModule,
BrowserAnimationsModule,
LayoutModule,
MatToolbarModule,
MatButtonModule,
MatSidenavModule,
MatIconModule,
MatListModule,
MatGridListModule,
MatCardModule,
MatMenuModule,
RouterModule.forRoot(appRoutes),
MatTableModule,
MatPaginatorModule,
MatSortModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Мой навигационный компонент html выглядит следующим образом
<mat-sidenav-container class="sidenav-container">
<mat-sidenav
#drawer
class="sidenav"
fixedInViewport="true"
[attr.role]="(isHandset$ | async) ? 'dialog' : 'navigation'"
[mode]="(isHandset$ | async) ? 'over' : 'side'"
[opened]="!(isHandset$ | async)">
<mat-toolbar color="primary">Menu</mat-toolbar>
<mat-nav-list>
<a mat-list-item routerLink = "/">Dashboard</a>
<a mat-list-item href="#">Link 2</a>
<a mat-list-item href="#">Link 3</a>
</mat-nav-list>
</mat-sidenav>
<mat-sidenav-content>
<mat-toolbar color="primary">
<button
type="button"
aria-label="Toggle sidenav"
mat-icon-button
(click)="drawer.toggle()"
*ngIf="isHandset$ | async">
<mat-icon aria-label="Side nav toggle icon">menu</mat-icon>
</button>
<span>mock-admin-console</span>
</mat-toolbar>
<!-- Add Content Here -->
</mat-sidenav-content>
</mat-sidenav-container>
Внутри
app.component.html
<app-admin-console-nav>
<router-outlet></router-outlet>
</app-admin-console-nav>
Ожидаемый результат — панель инструментов должна отображаться с навигационным меню, поскольку указан путь «, и он должен по умолчанию использоваться для панели инструментов
Фактический результат — отображается навигационное меню, но не панель. когда я нажимаю на ссылку, ничего не происходит
Комментарии:
1. Хорошо, ребята, я решил проблему. Поэтому любой, кто сталкивается с такой же и в будущем, только не забудьте добавить имя компонент панели навигации HTML где это написано </mat-toolbar> <!— Add Content Here —> </mat-sidenav-content> Так что заменить «добавить контент» с <DashboardComp></DashboardComp> или НГ-контент также будет работать. Иногда простые вещи кажутся самыми сложными для выполнения. Но в любом случае теперь вы знаете.
Ответ №1:
у вас отсутствует следующий тег в разделе Добавить контент здесь :
<ng-content></ng-content>