我有一条这样的路线,带有一个子路线的解析器。
{
path: 'organizations/:oid',
component: AdminOrganizationComponent,
children: [
{
path: 'profile',
component: AdminOrganizationProfileComponent,
resolve: { organization: OrganizationResolver }
},
{ path: '', redirectTo: 'profile', pathMatch: 'full' }
]
},
解析器看起来像这样
@Injectable()
export class OrganizationResolver implements Resolve<Observable<Organization>> {
private activeOrganization: Organization;
constructor(private route:ActivatedRoute) {}
setUser(organization: Organization) {
this.activeOrganization = organization;
}
resolve() {
return of(this.activeOrganization);
}
}
在导航到路线之前,我使用该服务来设置所选组织。
edit(organization) {
this.organizationResolver.setUser(organization);
this.router.navigate(['/admin/organizations', organization.id]);
}
到目前为止,它按预期工作,我可以使用它snapshot.data
来获取选定的组织。
现在当我重新加载路线时
/组织/12345/个人资料
我希望解析器检查是否有activeOrganization
存储。如果没有,它应该通过http.get
带有12345
as的 a 来检索它id
。
我的问题是我不知道用哪个工具可以检索参数。通常在一个组件中我可以简单地使用activatedRoute.parent.params
但在这种情况下注入activatedRoute.parent
的是null
.
我想,既然我已经在 root 中提供了解析器,那parent=null
是有道理的,但是注销我null
在父级中获得的快照以及firstChild
......