0

我正在研究 Angular 8 和 Angular 材料,但我被困在我想在 sidenav 旁边显示我的内容或(组件)的地方,即当单击侧面菜单中的任何链接时主屏幕。这是我的一段代码

stackblitz 的链接My_link

除了 App 组件,我还有 3 个组件

  1. 标题组件
  2. 侧边栏组件
  3. 链接内容组件

SidebarCompoment.html

<div style="height: 100vh;">
<mat-sidenav-container>
    <mat-sidenav #sidenav>
    <!--   # [(opened)]="opened" mode="side" (opened)="log('Opened')" 
      (closed)="log('Closed')" --> 
    <div class="dropdown">  
    <button  [matMenuTriggerFor]="animals"  class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Animal index</button>
 </div>

    <mat-menu #animals="matMenu">
      <button mat-menu-item [matMenuTriggerFor]="vertebrates" (click)="setflag()"><a [routerLink]="'/link1'">Vertebrates</a></button>
      <button mat-menu-item [matMenuTriggerFor]="invertebrates">Invertebrates</button>
    </mat-menu>
   </mat-sidenav>  
  <mat-sidenav-content>
      <button  class="fa fa-list fa-2x" (click)="sidenav.toggle()"></button>
 </mat-sidenav-content>
 </mat-sidenav-container>
</div>

边栏组件.css

mat-sidenav-container {
height: 100vh;
background-color: white;

  }

  mat-sidenav, mat-sidenav-content {
    padding: 16px;

  }

  mat-sidenav {
    background-color: black;
    width: 300px;
  }

应用程序路由.module.ts

const routes: Routes = [

  { path: '', component: AppComponent},
  { path: 'link1', component: LinkContentComponent},
  { path: 'link2', component: LinkContentComponent}

];

app.component.html


<app-header></app-header>
<app-sidebar></app-sidebar>
<router-outlet></router-outlet>

我还提供了 stackblitz Stackblitz-link 的链接

我的输出屏幕

所以在这里我的问题是当我单击侧菜单中的任何链接时,我想在主屏幕中加载 LinkContent 组件,非常靠近侧菜单和标题下方。所以我应该怎么做。现在当我单击链接组件时如图所示,加载在侧边栏组件下方。任何帮助将不胜感激

这是我得到的输出

4

2 回答 2

2

当我去找你时,stackblitz的链接我可以看到你在app.component.html中有你的路由器插座。所以你可以做的是像这样在sidebar.component.html中添加你的路由器插座

Sidebar.component.html

<div style="height: 100vh;">
<mat-sidenav-container>
    <mat-sidenav #sidenav>
    <!--   # [(opened)]="opened" mode="side" (opened)="log('Opened')" 
      (closed)="log('Closed')" --> 
    <div class="dropdown">  
    <button  [matMenuTriggerFor]="animals"  class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Animal index</button>
 </div>

    <mat-menu #animals="matMenu">
      <button mat-menu-item [matMenuTriggerFor]="vertebrates" (click)="setflag()"><a [routerLink]="'/link1'">Vertebrates</a></button>
      <button mat-menu-item [matMenuTriggerFor]="invertebrates">Invertebrates</button>
    </mat-menu>
   </mat-sidenav>  
  <mat-sidenav-content>

<!-- Adding router-outtlet here        -->

<router-outlet></router-outlet>

      <button  class="fa fa-list fa-2x" (click)="sidenav.toggle()"></button>
 </mat-sidenav-content>
 </mat-sidenav-container>
</div>

于 2019-12-22T06:33:09.720 回答
-2

查看您的代码,我认为您需要重新访问文档。 https://material.angular.io/components/sidenav/overview

于 2019-12-21T18:04:14.570 回答