Как реализовать RouteReuseStrategy только тогда, когда пользователь возвращается (история)? - PullRequest
0 голосов
/ 21 июня 2019

У меня есть проект Angular 2, в котором я реализовал собственную стратегию повторного использования, которая хранит отдельный маршрут и повторно использует их, если они уже существуют.

Это хорошо, но я хотел бы использовать этот механизм только в том случае, если пользователь нажимает кнопку навигатора и возвращается назад, а не если пользователь щелкает напрямую по некоторым ссылкам на моей странице или в меню.

Цель состоит в том, что если пользователь приходит с кнопки возврата назад, маршрут будет отображаться, если он ушел, но если пользователь нажмет на ссылку или меню, страница будет перезагружена и данные с сервера будут получены снова!

Я пытался проверить, есть ли в ActivatedRouteSnapshot информация о том, что пользователь приходит из истории, а не напрямую по ссылке (с router.navigate), но ничего не вижу.

Есть ли способ достичь того, что я хотел бы?

1 Ответ

0 голосов
/ 21 июня 2019

Вы можете обнаружить нажатие кнопки "Назад", выполнив:

constructor(location: LocationStrategy) {
  location.onPopState(() => {
    console.log('Back button pressed!');
    console.log(window.location);
  });
}

Вы должны добавить @Injectable(), чтобы ввести LocationStrategy.

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