Angular: Как изменить URL до завершения работы резольвера? - PullRequest
0 голосов
/ 12 марта 2020

При использовании Resolver с в Angular (7) возможно ли изменить URL-адрес до выполнения Resolver с? Я рассчитываю реализовать глобальную панель загрузки, такую ​​как на YouTube, где данные следующей страницы загружаются до того, как содержимое текущей страницы заменяется новым содержимым страницы - именно так ведет себя Resolver.

Однако на YouTube URL-адрес изменяется в начале навигации, и, следовательно, перед загрузкой контента, в то время как в Angular при использовании Resolver URL-адрес не изменяется до тех пор, пока оба Resolver s и любые Guard s закончили выполнение (успешно).

Есть ли способ добиться поведения, похожего на YouTube, где URL-адрес изменяется немедленно, но контент не изменяется до завершения загрузки?

1 Ответ

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

Вы можете изменить поведение, когда Angular обновляет URL, указав urlUpdateStrategy в ExtraOptions, переданном RouterModule.forRoot(). Указание eager приведет к обновлению URL-адреса перед попыткой навигации, а указание deferred или оставление его неуказанным приведет к обновлению URL-адреса после того, как преобразователи и средства защиты закончат выполнение:

RouterModule.forRoot(routes, {
  urlUpdateStrategy: 'eager'
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...