4

こんにちは、最初のリンクがダッシュボードを表示するプロジェクトにナビゲーション スケマティックを追加しようとしています。そのため、ページが最初に表示されたときにダッシュボードが表示されます。後で、追加のリンクを追加します。問題は、Navigation Schematic リンク内で routerLink を使用して Dashboard コンポーネントを追加しようとすると、Dashboard が表示されないことです。ただし、ダッシュボード コンポーネントを 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>

期待される結果 - 指定されたパスが '' であるため、ダッシュボードがナビゲーション メニューとともに表示され、デフォルトでダッシュボードが表示されるはずです。

実際の結果 - ナビゲーション メニューは表示されますが、ダッシュボードは表示されません。リンクをクリックしても何も起こらない

4

0 に答える 0