角度路由器始终重定向到同一模块

时间:2017-09-11 20:19:16

标签: angular routing angular2-routing

这让我发疯了。 我的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>

1 个答案:

答案 0 :(得分:1)

我认为您需要指定完整路线,即使在功能模块路由中也是如此。

发生的事情是它进入您的客户路由并找到路径&#39;&#39;&#39; +&#39;&#39;并登陆CustomerSearchComponent。

尝试更改客户路由的基本路径为&#39;客户&#39;而不是&#39;&#39;并将您的促销路由中的路径更改为&#39; promotion&#39;和&#39;促销/新&#39;