我有一个关于 Angular 5 路由的问题。
如果我在下面声明这样的路由,route guard
则每次我通过routerLink
html 路由到其中一个组件时都会调用 。
const routes: Route[] = [
{ path: 'comp1', component: Comp1Component, canActivate: [AuthGuard]},
{ path: 'comp2', component: Comp2Component, canActivate: [AuthGuard]},
{ path: '', component: HomeComponent, canActivate: [AuthGuard]},
]
但是,如果我使用路由声明它componentless
,则仅在应用程序启动时才调用守卫。当我在 html 中切换路由时,再也不会调用守卫了。
const routes: Route[] = [
{ path: '', canActivate: [AuthGuard], children: [
{ path: 'comp1', component: Comp1Component},
{ path: 'comp2', component: Comp2Component}
]}
为什么每次路由到组件时都不会调用无组件父路由的场景中的路由保护?