是否可以使用router.events
来知道路由是否具有解析器?
我尝试通过以下方式找到它:
this.router.events.subscribe(e => {
console.log(e);
})
但是,似乎在路由器事件中没有有关解析器的信息。我需要这个作为进度条。在这种情况下,ActivatedRoute
可能有用吗?但是我到底应该去哪里看? activateRoute.snapshot.data
始终是空对象
我也尝试过:
private isRouteHaveResolvers() {
let firstChild = this.activatedRoute.firstChild;
while (firstChild && firstChild.firstChild) {
firstChild = firstChild.firstChild;
}
return firstChild && firstChild.routeConfig && !!Object.keys(firstChild.routeConfig.resolve).length;
}
但是它不能正常工作。例如这种情况:
{
path: 'edit',
component: EditComponent,
resolve: {
data: resolverData
},
children: [{
path: 'activity/:activityId',
component: ModalComponent,
outlet: 'modal',
}],
}
对于此路线activity/:activityId
,它返回true