gpt4 book ai didi

angular - 将路由器防护应用于除一名 child 之外的所有 child

转载 作者:行者123 更新时间:2023-12-02 15:40:14 26 4
gpt4 key购买 nike

目前,在 Angular 中,您可以通过对父路由之一应用路由器防护来限制对所有子路由的访问:

export const routes: Routes = [
{
path: 'my-account',
canActivate: [IsUserLoggedIn],
children: [{
path: 'settings',
component: SettingsComponent
}, {
path: 'edit-profile',
component; EditProfileComponent
}]
}
];

这对于避免在每个路由中重复 canActivate 防护很有用。但是现在,当我想在 my-account 下引入第三条应该可公开访问的路由时,会发生什么情况?例如,也许 my-account/help 上有一个可公开访问的帮助页面,每个人都应该能够访问,即使他们没有登录:

}, {
path: 'help',
component: HelpComponent,
// Somehow make exception to canActivate guard above
}, {

有没有一种干净的方法可以做到这一点,或者是破坏路由组织并手动将路由器防护应用于每个子路由的唯一方法(帮助页面除外)?

最佳答案

我个人认为如果HelpComponent路由不需要被保护,它需要位于不同的父路由中。所以,这就是组织路线的问题。

但是,无论如何,您也可以为其创建单独的路由,例如:

export const routes: Routes = [
{
path: 'my-account',
canActivate: [IsUserLoggedIn],
children: [{
path: 'settings',
component: SettingsComponent
}, {
path: 'edit-profile',
component: EditProfileComponent
}]
},
{
path: 'my-account/help',
component: HelpComponent
}
];

关于angular - 将路由器防护应用于除一名 child 之外的所有 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48715008/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com