Как мне выполнить перенаправление в угловой перехватчик
Привет, ребята, я довольно новичок в angular, и у меня возник вопрос о том, как лучше всего справиться с перенаправлением внутри перехватчика.
В моем приложении есть определенные страницы, к которым я смогу получить доступ, только если у меня выбрана учетная запись. Поэтому, если учетная запись не выбрана, я хочу, чтобы пользователь перенаправил страницу на страницу, чтобы выбрать учетную запись.
Вот моя неудачная попытка:
// within config
$httpProvider.interceptors.push(function($q, $injector){
return {
'request': function(config) {
var state = $injector.get('$state');
if(state.is('user.list')) {
var accountService = $injector.get('AccountService');
if(!accountService.accountSelected()){
// cancel the current request
var defer = $q.defer();
defer.resolve();
config.timeout = defer.promise;
state.go('account.select');
}
}
return config;
}
}
});
Это вызываетбесконечный цикл для меня. По какой-то причине, когдаstate.go
срабатывает - и он перехватывается состояние все еще "user.list"
Примечание: я использую ui-router, угловой 1.2.6
Другое примечание: другое место, где я думал об этом, было в блоке state.resolve.
Спасибо за помощь!