Проверьте существование резольвера по событию Router в Angular - PullRequest
0 голосов
/ 21 мая 2019

Можно ли узнать, есть ли у маршрута резольверы или нет с 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...