在子模块声明的通配符路由

时间:2017-01-17 03:02:08

标签: angular angular2-routing

我创建了 AppModule 中导入的 CoreModule ,在 AppRoutingModule 之后我指定了应用的入口点,但我是有一个问题,当应用程序启动时,它显示通配符路由,这是我的代码:

CoreRoutingModule

export const CoreRoutingModule = RouterModule.forRoot([
  { path: '**', component: NotFoundComponent }
]);

CoreModule

@NgModule({
  imports: [
    CommonModule,
    CoreRoutingModule
  ],
  declarations: [ NotFoundComponent ]
})
export class CoreModule {}

AppRoutingModule

export const AppRoutingModule = RouterModule.forRoot([
  { path: '', component: AppComponent }
]);

的AppModule

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    AppRoutingModule,
    CoreModule
  ],
  providers: [],
  bootstrap: [ AppComponent ]
})
export class AppModule {}

当我访问http://localhost/时应用程序显示的是带有NotFoundComponent的通配符路径,它应显示AppComponent

工作环境:Angular 2.4.3,路由器3.4.3

2 个答案:

答案 0 :(得分:0)

我不确定您的代码究竟是什么问题。没有所有文件的测试。无论如何,我想这会奏效。试试这个...添加(pathMatch)和redirectTo

    export const AppRoutingModule = RouterModule.forRoot([
      { path: '', redirectTo: '/whereToGo', pathMatch: 'full'}
    ]);

请参考这个。希望能帮助到你。 https://angular.io/docs/ts/latest/guide/router.html#!#default-route

答案 1 :(得分:0)

首先在根级别按顺序匹配路由。

在你的情况下**来自''因此**路线被渲染。