(Angular 8) Почему невозможно перезагрузить маршрут, на который ссылается маршрут с принудительным перенаправлением? - PullRequest
0 голосов
/ 18 марта 2020

У меня есть система, в которой я выбираю элемент. Я бы обновлял sh мой основной компонент каждый раз, когда меняю этот элемент. Это нормально везде, кроме как на главной странице.

Пример по коду. Это важная часть моего app-routing.module.ts:

  /******* Default route *******/
  {
   path: '',
   redirectTo: '/' + Route.DASHBOARD,
   pathMatch: 'full'
  },

  /******* DASHBOARD *******/
  {
    path: Route.DASHBOARD, component: DashboardComponent,
    canActivate: [AuthGuard],
    data: {
      title: i18nlib.TITLE.DASHBOARD,
      icon: constant.ICON.DASHBOARD,
      breadcrumb: i18nlib.TITLE.DASHBOARD
    }
  },

Когда я на URL-адресе root, я перенаправлен на страницу панели инструментов: все в порядке. Refre sh страницы от компонента в порядке на каждой странице. Когда я на странице панели инструментов и хочу перезагрузить страницу из того же компонента, это не работает.

Если я прокомментирую эту часть:

  /******* Default route *******/
  {
   path: '',
   redirectTo: '/' + Route.DASHBOARD,
   pathMatch: 'full'
  },

... это работает.

Кто-то знает, почему невозможно сделать оба одновременно ...? Я не понимаю, почему ...

Большое спасибо за помощь!

1 Ответ

0 голосов
/ 19 марта 2020

Я не понимаю, почему для моей первоначальной проблемы, и я бы хотел понять, но я нашел что-то, чтобы решить мою проблему. В соответствующем компоненте (DashboardComponent):

navigationSubscription;

  constructor(
    private router: Router,
  ) {
    // subscribe to the router events. Store the subscription so we can
    // unsubscribe later.
    this.navigationSubscription = this.router.events.subscribe((e: any) => {
      // If it is a NavigationEnd event re-initalise the component
      if (e instanceof NavigationEnd) {
        this.ngOnInit();
      }
    });
  }


  ngOnDestroy() {
    if (this.navigationSubscription) {
      this.navigationSubscription.unsubscribe();
    }
  }

Мое перенаправление такое же, как и раньше, и моя перезагрузка работает на моей странице панели инструментов.

Я изменил код для своего случая, но нашел ответ здесь: [ Как перезагрузить текущий маршрут с помощью angular 2 маршрутизатора . (Ответ из Красного горошка).

...