我有一个canDeactivate守护程序,用于检查route(Component)是否可以停用。当我在路线上应用它时,它可以正常工作。
const routes: Routes = [
{ path: '', component: MyComponent, canDeactivate: [MyGuard] }
]
我希望将此canDeactivate防护应用于我的应用中的所有路由,无论它们是应用的延迟加载/预加载/加载。
注意:我不想在所有路线上都写这个后卫。
是否存在任何Observable,EvenEmitter或我可以通过遍历所有路由来更新路由的东西?
此外,任何遍历所有路径的遍历代码都会很有帮助。
注意:子路由更改时,CanDeactivate不会被调用。
谢谢!
答案 0 :(得分:1)
像这样的事情可以做到:
const routes: Routes = [
{ path: '', canDeactivate: [MyGuard], children: [
{ path: 'cmp1', component: MyComponent1 },
{ path: 'cmp2', component: MyComponent2 },
{ path: 'lazy', loadChildren: './modules/lazy/lazy.module#LazyModule' },
] },
];
只需添加一条带有该守卫的根路由,并将所有其他路由作为其子级。