这让我发疯了。 我的app模块中有3条简单的路由:
routes: Routes = [
{ path: '', redirectTo: '/customers', pathMatch: 'full' },
{ path: 'customers', loadChildren: './components/customer#CustomerModule' },
{ path: 'promotions', loadChildren: './components/promotion#PromotionModule'}
];
在我的客户模块中,我定义了这些路线:
routes: Routes = [
{
path: '', component: CustomerComponent, children: [
{ path: '', component: CustomerSearchComponent },
{ path: ':id', component: CustomerDetailComponent }
]}
];
在我的推广模块中:
routes: Routes = [
{ path: '', component: PromotionComponent },
{ path: 'new', component: PromotionNewComponent }
];
我的AppComponent和CustomerComponent中有一个<router-outlet></router-outlet>
。
问题是,当我去路线/促销时,我仍然被重定向到CustomerModule - &gt; CustomerComponent - &gt; CustomerSearch
为什么会这样?我无法弄清楚
修改 对于导航,我有一个标题组件,其中包含:
<ul class="nav navbar-nav">
<li>
<a [routerLink]="['./customers']"
routerLinkActive="active" [routerLinkActiveOptions]="{exact: true}">
Customers
</a>
</li>
<li>
<a [routerLink]="['./promotions']"
routerLinkActive="active" [routerLinkActiveOptions]="{exact: true}">
Promotions
</a>
</li>
</ul>
app组件是这样的:
<app-header></app-header>
<main class="container">
<router-outlet></router-outlet>
</main>
答案 0 :(得分:1)
我认为您需要指定完整路线,即使在功能模块路由中也是如此。
发生的事情是它进入您的客户路由并找到路径&#39;&#39;&#39; +&#39;&#39;并登陆CustomerSearchComponent。
尝试更改客户路由的基本路径为&#39;客户&#39;而不是&#39;&#39;并将您的促销路由中的路径更改为&#39; promotion&#39;和&#39;促销/新&#39;