总是得到一个默认路线 - Angular 4

时间:2017-06-10 23:31:27

标签: angular path routing

我有以下代码:

const appRoutes: Routes = [
  { path: '', redirectTo: '/login', pathMatch: 'full' },
  { path: 'home', component: HomeComponent, canActivate: [AuthGuard]    },
 // Lazy Loading (preloads) so I wont have to LOAD the new code chunk
{ path: 'highlights', loadChildren: './highlights/highlights.module#HighlightsModule', canActivate: [AuthGuard] },
{ path: 'news', loadChildren: './news/news.module#NewsModule', canActivate: [AuthGuard]  },
{
    path: 'not-found',
    component: ErrorPageComponent,
 data: { message: 'Page was not found' }
},
{ path: '**', redirectTo: '/not-found' } // must be last
];

我的登录' /登录' route被外包到一个带有路由模块(AuthRoutingModule)的模块(AuthModule)。

我在AuthRoutingModule中的路由const是:

const authRoutes: Routes = [
   { path: 'login', component: LoginComponent}
];

问题仅在 appRoutes 中存在路径时才会出现:

{ path: '**', redirectTo: '/not-found' }

否则它可以正常工作。

我不明白。我总是找不到,好像' / login' 无法识别。

' / login' 与我上面提到的外包模块一起导出。

有什么问题?

2 个答案:

答案 0 :(得分:0)

如果这些是您在致电RouterModule.forRoot()时使用的路线定义,那么如果您尝试导航至root/login,它将始终导航至未找到。这些路线中没有该路径的定义......

如果您有另一个模块,其中有该路径的定义,那么您需要将该模块加载到您用于RouterModule.forRoot()的路由中

答案 1 :(得分:0)

我遇到了类似的问题。如果您的设置正确那么 尝试解决组件中的所有文件导入错误/次要错误。