作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个路径列表,我想将 CanActivate
应用于除某些路径之外的所有路径。是否有任何 Angular 丢弃某些路径的方法。目前我正在将 canActivate
应用到所有的 URL。如果有很多 URL,我们不想将它应用到所有的 URL,我将应用到父路径。但是,如果我们适用于 parent ,它也将适用于所有 child 。有没有办法丢弃一些 child 。
const routes: Routes = [
{ path : '', component: UsersListComponent, canActivate:[AuthenticationGuard] },
{ path : 'add', component : AddComponent, canActivate:[AuthenticationGuard]},
{ path : ':id', component: UserShowComponent },
{ path : 'delete/:id', component : DeleteComponent, canActivate:[AuthenticationGuard] },
{ path : 'ban/:id', component : BanComponent, canActivate:[AuthenticationGuard] },
{ path : 'edit/:id', component : EditComponent, canActivate:[AuthenticationGuard] }
];
最佳答案
不可能丢弃一些 child ,但你可以打破你的路线,使 Guard 适用于某些而不适用于某些 child ,
试试下面,
{
path: 'parentPath',
component: ParentComponent,
canActivate: [AuthGuard],
children: [
{path : 'child1', component: ChildComponent1},
{path : 'child2', component: ChildComponent2}
]
},
{
path: 'parentPath',
component: ParentComponent,
children: [
{path : 'child3', component: ChildComponent3}
]
}
如果你像上面那样设计你的路由,Guards 将只应用于 child1
和 child2
,而不应用于 child3
。
通过这种方式,您可以轻松地在父级为某些子级应用 Guard。
这是一个Plunker !!
关于javascript - 如何将 CanActivate 应用于除某些路径之外的所有路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45656958/
我是一名优秀的程序员,十分优秀!