我正在尝试在 Angular 8 中使用路由器和延迟加载。我之前已经在 Angular 7 中成功使用过它。
我有一些基本路线如下:
/home
/auth
/auth/login
/auth/signUp
我想/auth
重定向到/auth/login
其他一切重定向到/home
.
为了做到这一点,我的app-routing.module.ts
样子是这样的:
const routes: Routes = [
{
path: '',
redirectTo: '/home',
pathMatch: 'full'
},
{
path: 'auth',
loadChildren: () => import('./modules/auth/auth.module').then(m => m.AuthModule)
},
{
path: 'home',
loadChildren: () => import('./modules/home/home.module').then(m => m.HomeModule)
},
{
path: '**',
redirectTo: '/home',
pathMatch: 'full'
}
];
我的auth-routing.module.ts
样子是这样的:
const routes: Routes = [
{
path: '',
redirectTo: '/auth/login',
pathMatch: 'full'
},
{
path: 'login',
component: LoginComponent
},
{
path: 'signUp',
component: LogoutComponent
}
];
问题是它总是重定向到身份验证页面并忽略其他重定向。和路径/login
也/signUp
可以在根级别使用,这很奇怪,但它们也可以在带有前缀的情况下工作,/auth/login
这更加奇特。
所以由于某种原因,这些路线似乎存在两次。此外,当我在路径中添加
前缀时,突然可以直接指向auth-routing.module.ts
auth/
/auth/auth/login
我已经激活了 Angular 8 的所有必要功能,以使 ivy 和延迟加载工作。我定义的其他路由和惰性模块正在工作。