通过Angular中的路由器事件检查解析器是否存在

时间:2019-05-21 12:31:11

标签: javascript angular routes

是否可以使用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

0 个答案:

没有答案