是的,可以使用resolve属性将需要等待解析的所有守卫添加到根路由,这样就可以在不等待守卫解析的情况下加载包含路由出口的标记。以下是示例代码:
app-routing.module.ts
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { HomeComponent } from './home/home.component';
import { AboutComponent } from './about/about.component';
import { AuthGuard } from './auth.guard';
const routes: Routes = [
{
path: '',
resolve: {
auth: AuthGuard
},
children: [
{
path: '',
component: HomeComponent
},
{
path: 'about',
component: AboutComponent
}
]
}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
在上面的代码中,我们将AuthGuard添加到根路由的resolve属性中,因此在加载包含路由出口的标记时,不需要等待守卫解析。