Я работаю над SPA, используя AngularJS. Я хочу перемещаться по состояниям приложения, используя ссылки в приложении, и я хочу предотвратить такую же навигацию при нажатии кнопки "Назад".
Все найденные мной решения, включая $ locationChangeStart в angularJs, предотвращают навигацию, когда я нажимаю ссылки в моем приложении.
Предоставьте решение, которое предотвращает только навигацию по кнопкам браузера и позволяет осуществлять навигацию по нажатию ссылки в приложении.
Самый простой способ сделать это - отобразить переходы из текущего состояния приложения (url) в действительные состояния следующего приложения (urls) и только предотвращатьDefault, если не выполняется переход из текущего состояния в значение, заданное с помощью $locationChangeStart
,
Если вы это сделаете, вы не только не позволяете пользователю использовать кнопку "Назад", но и помещать нежелательные URL-адреса в браузере, чтобы создать недопустимое состояние приложения и, возможно, повредить ваше приложение.
Я предлагаю вам не использовать какой-либо метод "history history history.forward", например, связанный в другом ответе, это самый худший UX, сделать его прозрачным для пользователя.