Это происходит потому, что вы используете маршрутизатор Angular для доступа к фрагменту, который динамически загружает необходимые компоненты на стороне клиента, не выполняя новый запрос к серверу.
У вас есть 3 возможных решения:
откажитесь от использования Angular Router и просто используйте старую простую <a href="#fragment">
. Тот факт, что существует способ Angular, не означает, что использование стандартных функций HTML запрещено
Не обновляйте URL, таким образом, ваша сеть приложение не знает, нажали ли вы на якорь или нет, и всегда будет прокручивать до элемента. Вы можете сделать это, установив атрибут [skipLocationChange]="true"
, как вы можете видеть в этом форке вашего StackBlitz
Используйте одно из многих решений, представленных в этот вопрос StackOverflow
Я думаю, что лучшее решение - это решение, основанное на <a href
.
. Используйте [routerLink]
в сочетании с [fragment]
, когда Вы хотите добраться до фрагмента другого маршрута . Не тогда, когда вы хотите добраться до фрагмента внутри того же маршрута.
Надеюсь, это будет полезно