В моем приложении AngularJS мне нужно сохранить только изменения состояния в истории браузера. Поэтому, когда я изменяю параметры $ location, я использую метод replace().
Например, когда я обращаюсь к странице/page1, она сохраняется в истории. Параметр «центр» добавляется автоматически с заменой(), поэтому он не добавляет новую запись истории:
$location.search('centre', hash).replace();
Каждый раз, когда я двигаюсь карту, изменения «Центр».
Когда я перехожу в/page2, создается новая запись в истории. Когда я перемещаю карту, меняется «центр».
Дело в том, что когда я нажимаю кнопку BACK, я собираюсь/page1, но мне нужно сохранить «центр» так же, как и раньше, но он изменяется на то, что было сохранено вместе с записью истории/page1 ,
Как я могу исправить эту проблему?
Я пытался добавить:
$window.history.replaceState({}, '', $location.absUrl());
После я заменить(), но не работает.
Нет необходимости для переваривания вызова, если не называется снаружи угловой дайджест, метод замены устанавливает флаг для замены истории внутри угловой в течение текущего цикла дайджеста и будет обновляться до значения false после завершения дайджеста. –