【发布时间】:2020-02-25 11:52:44
【问题描述】:
我正在尝试了解路由的工作原理,我会简要地向您解释我的项目。
登录后,用户被导航到仪表板,侧边栏显示 2 个导航链接:/projects 和 /training。
这 2 条路线需要显示在侧边栏旁边,但它正在使用该路线打开新页面。我怎样才能做到这一点?
我尝试在应该显示项目和培训的地方设置路由器插座,但没有逻辑,我尝试为路由器插座设置名称,但要么不起作用。
路由模块
const appRoutes: Routes = [
{ path: 'dashboard', component: MenuComponent, canActivate: [AuthGuard] },
{ path: 'project-list', component: ProjectListComponent, canActivate: [AuthGuard] },
{ path: 'training', component: TrainingComponent, canActivate: [AuthGuard] },
{ path: '', component: LoginComponent},
{ path: '**', redirectTo: '' }
];
@NgModule({
imports: [RouterModule.forRoot(appRoutes)],
exports: [RouterModule]
})
export class AppRoutingModule {}
应用组件
<router-outlet></router-outlet>
菜单组件(侧边栏)
<div class="w-100 container-fluid">
<div class="row page-container">
<!-- sidebar -->
<div
class="d-none d-md-block"
[ngClass]="activate ? 'sidebar-expanded' : 'hide-menu'"
id="sidebar"
>
<ul class="sidebar-nav list-unstyled">
<li>
<uhura-logo [activate]="activate"></uhura-logo>
</li>
<li>
<uhura-navigation [activate]="activate"></uhura-navigation>
</li>
<div class="toggle-container" (click)="toggleClass()">
<a class="icons-menu typcn" [ngClass]="activate ? 'typcn-chevron-left': 'typcn-chevron-right'">
</a>
</div>
<li>
<uhura-account></uhura-account>
</li>
</ul>
</div>
<!-- sidebar -->
<div class="col-10">
HERE ROUTES SHOULD BE DISPLAYED
</div>
</div>
</div>
嵌套在侧边栏内的导航组件
<div class="navigation-container">
<div *ngIf="activate" class="nav-info">
<p>Navigation</p>
</div>
<ul class="nav flex-column nav-list">
<li class="nav-item">
<a class="nav-link" routerLink="/project-list" routerLinkActive="active" [routerLinkActiveOptions]="{exact:
true}">
<span class="typcn typcn-folder"></span>
<span *ngIf="activate">Projects</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" routerLink="/training" routerLinkActive="active" [routerLinkActiveOptions]="{exact:
true}">
<span class="typcn typcn-lightbulb"></span>
<span *ngIf="activate">Training</span>
</a>
</li>
</ul>
</div>
【问题讨论】:
-
您想在侧边栏中加载培训/项目?然后您需要将它们添加为仪表板的子路由
-
在 app.component 中仅添加
组件,并将 router-outlet 添加到您要显示路由组件的位置。
标签: javascript angular angular2-routing