Я включил runGuardsAndResolvers: 'Always' в моем угловом маршрутизаторе, он работает:
const APP_ROUTES: Routes = [
{
path: '',
canDeactivate: [DeActivateGuard],
canActivate: [ActivateGuard],
runGuardsAndResolvers: 'always',
children: [
{
path: '',
redirectTo: '/mainApp',
pathMatch: 'full'
},
{
path: 'route1',
canActivate: [Route1Guard],
loadChildren: 'app/route1/route1.module#Route1Module',
},
{
path: 'route2',
canActivate: [Route2Guard],
loadChildren: 'app/route2/route2.module#Route1Module',
}
]
}]
Но единственный защитник, который я хочу запустить всегда, - это canDeactivate для общего маршрута, сейчас каждый запуск изменения маршрута выполняетсяActivateGuard и RouteXGuard.
Можно ли использовать runGuardsAndResolvers, выбирая, какую охрану вы хотите запустить?