$ scope. $ on $ locationChangeStart сохраняет URL, но показывает новый вид - PullRequest
0 голосов
/ 06 октября 2018

У меня проблема с получением следующего фрагмента кода.Это встроено в более крупное приложение, но проблема в том, что следующий код запускается (я проверил) и будет препятствовать изменению URL, но отображается представление с нового маршрута, даже если я не подтверждаю.Поэтому я не могу оставаться на той же странице, даже если URL-адрес остается прежним.Я пропускаю кусок кода, который необходим для запуска этого?

$scope.$on("$locationChangeStart", function(event) {
    if (!confirm("You have unsaved changes. Are you sure you want to leave this page without saving?")) {
        event.preventDefault();
    }
});

1 Ответ

0 голосов
/ 06 октября 2018

Вы должны позвонить event.preventDefault(); на $locationChangeStart: чтобы остановить навигацию, а когда пользователь confirm, затем перенаправить.

$scope.$on("$locationChangeStart", function(event, newUrl) {
    event.preventDefault();
    if (confirm("You have unsaved changes. Are you sure you want to leave this page without saving?")) {
        $location.path($location.url(newUrl).hash());
    }
});

Вы можете проверить больше в Навигация по маршруту Cacelling

...