【发布时间】:2018-07-21 07:59:36
【问题描述】:
我创建了一个导航栏,我正在尝试调用其他模块的组件,以便我能够从导航栏链接访问不同的页面。 我使用 routerlink 作为属性来调用组件。这是为了更好地理解的代码。
navbar.component.html
<ul class="nav navbar-nav">
<li class="active"><a href="#">Home<span class="sr-only">(current)</span></a></li>
<li><a routerlink="/fixeddeposits" routerLinkActive="active">Link</a></li>
navbar.routing.module.ts
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { TableComponent } from '../table/table.component';
import { FixedDepositsComponent } from '../fixed-deposits/fixed-
deposits.component';
const routes: Routes = [
{path: 'table', component: TableComponent},
{path: 'fixeddeposits', component: FixedDepositsComponent},
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
})
export class NavbarRoutingModule { }
export const routedComponents = [
TableComponent,
FixedDepositsComponent,
];
navbar.component.ts
import { Component,NgModule } from '@angular/core';
import { NavbarModule } from './navbar.module';
@NgModule({
imports:[NavbarModule],
})
@Component({
moduleId: module.id,
selector: 'navbar',
templateUrl: 'navbar.component.html'
})
export class NavbarComponent {
title = 'app';
}
navbar.module.ts
import { NgModule } from '@angular/core';
import { NavbarRoutingModule, routedComponents } from
'./navbar.routing.module';
@NgModule({
imports: [
NavbarRoutingModule,],
declarations: [
routedComponents,
],
})
export class NavbarModule { }
app.routing.ts
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { TableComponent } from './table/table.component';
import { FixedDepositsComponent } from './fixed-deposits/fixed-d
eposits.component';
const routes: Routes = [
{path: 'table', component: TableComponent},
{path: 'fixeddeposits', component: FixedDepositsComponent},
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule {}
export const routingComponents = [TableComponent, FixedDepositsComponent];
当我使用此代码时,我没有收到错误,但是当我单击导航栏按钮链接时,我没有被重定向到定期存款组件。
【问题讨论】:
-
可以把定期存款模块加到
imports: [RouterModule.forChild(routes)],吗?如果您想使用延迟加载,那么您可能需要通过angular.io/guide/lazy-loading-ngmodules 了解示例。 -
你能发布主要路线的定义吗?
-
@AdrianFâciu 我已经尝试在主要路线上做同样的事情,我已经提到了 app.routing.ts 上面的代码
-
@WandMaker 我是否需要添加固定存款模块,因为我没有为它创建模块,因为我希望通过以这种方式将其定义到路由中来访问固定存款组件:{path:'fixeddeposits',组件:FixedDepositsComponent},
-
您可以为您的应用创建一个 stackblitz 版本 - 然后,有人可以看看
标签: angular components navbar angular-router