【发布时间】:2020-11-19 17:48:30
【问题描述】:
路由设置:paramsInheritanceStrategy: 'always'
99% 有效。来自较高组件的参数和数据传递给较低组件。两者都可以在激活的路由参数和数据中的组件中访问。问题出现在 CanActivate 中。假设我们有这样的路由:
path: '/a',
data: {
param1: true
},
resolve: {subject: SubjectResolver},
children: [
{
path: ':someParammeeero',
component: B,
canActivate: [BGuard]
},
{
path: '',
component: A
}
]
组件 A 有一个重定向到组件 B 的按钮。当我在组件 A 中时,我可以访问 route.data.subject 但是当我尝试转到组件 B 时,在 BGuard 激活的路由内部没有数据内部的主题,但是有 param1 所以......这就像继承工作,但不是在解决情况下。内部守卫我必须访问 route.parent.data.subject。
当我在组件 B 上并刷新页面时,一切正常。
我在守卫内部有两种不同的行为。
- 当我导航到 B 组件时,我必须访问 route.parent.data.subject。
- 当我在 B 组件页面并刷新页面时,我必须访问 route.data.subject
这是一个错误还是一个特征?也许我的路由结构不正确?
【问题讨论】:
标签: angular