Проблема с кнопкой «Назад» в Angular2 | URL-адрес не меняется | Угловой универсальный

Это довольно странная проблема, но я не знаю, что происходит. Когда я нажимаю кнопку «Назад», страница меняется, но URL остается прежним. Когда я снова нажимаю кнопку «Назад», URL меняется, но страница остается прежней.

Это было исправлено после использования

window.history.pushState({},'',url);

но с этим ... проблема в том, что я зацикливаюсь на 2 страницах, если продолжаю нажимать кнопку «Назад».

ПРИМЕР :-

A -> B -> C -> (back) -> B -> (back) -> C -> (back) -> B -> (back) -> C-> (back) -> B -> (back)

ПРИМЕЧАНИЕ. У меня есть RouterModule.forRoot() в корневом модуле маршрутизации и RouterModule.forChild() в дочерних маршрутах.

Я использую угловой универсальный.

В чем может быть проблема? Как это решить?

---------------------------------- ХХХХХ ----------------------------- ----------------------------------

ОБНОВИТЬ

Was playing with code and i ran into Location of @angular/common. 
This is great with popstate (resolved the url change issue) but the problem now is...
whenever i hit back button...it pop same page twice....

ПРИМЕР :-

A -> B -> C -> (back) -> B -> (back) -> B -> (back) -> A -> (back) -> A 

---------------------------------- ХХХХХ ----------------------------- ----------------------------------

ОБНОВЛЕНИЕ 2: -

when using location.. i checked the history length... 
the history length is not changing when the back button is clicked first time...

ПРИМЕР :-

A : length = 1 -> B : length = 2 -> C : length = 3 -> (back) -> B : length = 3 -> (back) -> 
B : length = 2 -> (back) -> A : length = 2 -> (back) -> A : length = 1 

P.S. -> Проверьте ссылку, прежде чем запрашивать версии библиотеки.


person Scien Ce Subject    schedule 08.06.2017    source источник
comment
может быть, я ничего не знаю об угловом, но window.history.pushState({},'',url); мне не кажется угловатым... во всяком случае - какой код вы используете для навигации между страницами?   -  person happyZZR1400    schedule 08.06.2017
comment
@happyZZR1400 должен был проверить ссылку, прежде чем спрашивать......... ну, раз уж вы спросили... его угловой код... я использовал routerlink для перемещения между страницами...... (роутерлинки похожи на href )...   -  person Scien Ce Subject    schedule 08.06.2017


Ответы (1)


Проверить файл

приложение-routing.module.ts

и убедитесь, что импортированные маршруты похожи

RouterModule.forChild([])

скорее, чем

RouterModule.forRoot([])

Это решит проблему.

person Himanshu Bansal    schedule 13.06.2017