Angular 7.1.4 - Что заставляет routerLink полностью перезагружать следующую страницу? - PullRequest
0 голосов
/ 08 июля 2019

Это странная проблема, которую я не могу отладить и не выдает никаких ошибок в журналах. У меня есть настройки страницы с mat-tab-nav-bar с 3 кнопками на панели инструментов, используя routerLink="" для подключения к различным страницам.

Шаблон компонента панели инструментов выглядит примерно так.

<nav mat-tab-nav-bar class="bottom-toolbar">

  <a mat-tab-link routerLink="/articles" routerLinkActive="active">
    Articles 
  </a>

  <a mat-tab-link routerLink="/categories" routerLinkActive="active">
    Categories
  </a>

  <a mat-tab-link routerLink="/settings" routerLinkActive="active">
    Settings
  </a>

</nav>

Этот компонент панели инструментов называется app.component.html вместе с <router-outlet></router-outlet>

FYI, маршруты для /articles, /categories и /settings - все они вызывают отдельные функциональные модули, и ни один из них не загружен с отложенной загрузкой. Маршрут /articles имеет охрану canActivate, а маршруты /categories и /settings - нет (я отключил их в целях тестирования).

Теперь к проблеме. Приложение прекрасно загружается, проходя проверку подлинности пользователя и все такое, и обычно попадает на страницу «Статьи».

На странице «Статьи», когда пользователь нажимает на «Категории», Angular выполняет полную перезагрузку страницы, чтобы загрузить страницу «Категории». Когда пользователь щелкает обратно, приложение возвращается на страницу «Статьи» без полной перезагрузки страницы. Когда пользователь снова щелкает ссылку «Категории», на этот раз маршрутизация страницы «Категории» работает должным образом. Так что он ломается только с первой попытки.

То же поведение для страницы настроек.

Если я отключил защиту canActivate для всех 3-х маршрутов, все маршруты работают должным образом.

Так что же заставляет routerLink полностью перезагрузить маршрут при первом нажатии?

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