Как на $routeChangeStart запретить смену роута чтобы после сработал $routeChangeError?

Есть связка событий
$rootScope.$on('$routeChangeStart', (event, next, current) => {
			console.log('current', current, next);
			event.preventDefault();
		});

		$rootScope.$on('$routeChangeError', (event, current, prevoius, reason) => {
			console.log('err', [event, current, prevoius, reason]);
		});


Событие routeChangeStart срабатывает и event.preventDefault() запрещает смену пути, но событие routeChangeError после этого не срабатывает.
Нужно запретить смену пути так, чтобы сработало событие routeChangeError и я в него мог передать причину, почему я запретил смену пути.
https://docs.angularjs.org/api/ngRoute/service/$route
  • Вопрос задан
  • 144 просмотра
Пригласить эксперта
Ответы на вопрос 1
После preventDefault ничего и не должно сработать.
routeChangeError возникает, когда один из resolve промисов реджектится, собственно лучше проверку повесить в state.resolve, а не в $routeChangeStart.
Вообще с выходом 1.x UI-router всё стало намного круче в этом плане. В том числе там можно делать то, что вы хотите, а именно transition hooks.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
19 апр. 2024, в 16:34
30000 руб./за проект
19 апр. 2024, в 16:22
30000 руб./за проект
19 апр. 2024, в 16:18
19000 руб./за проект