Использую angular-fire, обертку для стандартного firebase API.
В процессе работы возникла следующая проблема:
//задача - проверить права доступа на входе в админку
//если пользователь не авторизован, отдать шаблон '/login' .
$scope.loginService = $firebaseSimpleLogin(new Firebase(FIREBASE_URI));
$scope.loginService.$getCurrentUser()
.then(function(user){
if(!user){
$scope.redirect();
}
})
$scope.redirect = function(){
$location.path('/login');
}
По идее, после срабатывания колбэка, $routeProvider должен отреагировать на смену url-a и выдать соответствующий шаблон. Однако, этого не происходит, и, хотя в адресной строке url меняется, на экране остается та же страница.
Пробовал оборачивать в $apply(fn), вылетает ошибка, что "операция $apply уже запущена".
Как заставить $location.path() работать?