Как мы можем использовать $transitions
для отмены изменения состояния, чтобы запросить у пользователя сохранение? Предыдущие версии ui-router имели event
в обратном вызове и могли быть остановлены с помощью event.preventDefault()
, но это событие, похоже, исчезло.
Я использую этот код в своем контроллере:
var onTransitionStartOff = $transitions.onStart({}, function($transitions)
{
if ($scope.itemTracker.hasChanged()) {
$scope.itemTracker.askExitConfirm().then(function () {
onTransitionStartOff();
var toState = $transitions.$to();
$state.go(toState);
}, function () {});
return $q.reject(null);
}
onTransitionStartOff();
});
Он отлично работает, но оставляет сообщение об ошибке в консоли из-за отклоненного обещания.
Заглянул в stateService.ts, но ничего интересного не увидел...