Я использую Angular ui-router и имею функцию разрешения, настроенную для одного из моих состояний, прежде чем инициализируется контроллер. Я извлекаю некоторые данные, просматриваю и сопоставляю их с URL stateParam, и если совпадение найдено, разрешите обещание контроллеру и верните этот объект в обещание. Это хорошо работает.
Однако, если совпадение не найдено, я просто хочу перенаправить на другое состояние, отклонив обещание и запустив $state.go('state');
Просто это:
deferred.reject();
$state.go('state',{params: 'param'});
Но это ничего не делает. Контроллер просто зависает, и я не получаю никаких консольных ошибок или чего-то еще. Любые идеи?