$ locationChangeStart не вызывается, но вызывается раньше - PullRequest
0 голосов
/ 26 ноября 2018

Я хотел бы вызвать событие protectDefault, когда кто-то изменил состояние.

$scope.$on('$locationChangeStart', (e) => {
  if (!$window.confirm("Are you sure leave this page?")) {
    e.preventDefault();
  }
});

Это не работает, когда я пытаюсь покинуть страницу.

Это работает, если я использую $ rootScope.

Когда я использую $rootScope.$on event.preventDefault не работает.

Как я могу это исправить?

Спасибо

1 Ответ

0 голосов
/ 28 ноября 2018

вам нужно добавить переходную ловушку внутри блока выполнения:

run(function($transitions) {
    $transitions.onBefore({}, function() {
        function confirmDialog(msg) {
            return new Promise(function(resolve, reject) {
                let confirmed = window.confirm(msg);
                return confirmed ? resolve(true) : reject(false);
            });
        }
    })
});

для получения дополнительной информации перейдите по следующим ссылкам: https://ui -router.github.io / guide / transitionhooks# обещания http://vancelucas.com/blog/using-window-confirm-as-a-promise/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...