Valonix
@Valonix
Back end / Front end developer

Запустить функцию в run блоке Angular.js?

После ребута сервака. Сессия на сервере теряется. А кука на клиенте остается. Хочу при запуске приложения один раз логинить юзера.

MainController он у меня родитель над ng-view
$rootScope.reLogin = function relog(){
                        console.log('try to login');
                        var userCookie = $cookies.getObject('user');
                        if(!userCookie){
                            return false;
                        }
                        var user = {username: userCookie.username , password: userCookie.password};
                        authService.login(user)
                            .then(function(response){
                                    if(response.state === 'success'){
                                        return true;
                                    }
                                    else{
                                        $rootScope.authenticated = false;
                                        $rootScope.current_user = {};
                                        $rootScope.error_message = response.message;
                                        $cookies.remove('user');
                                    }
                                },
                                function(response){
                                    $rootScope.error_message = "Some error with login " + response.status;
                                }
                            );
                    };


Затем в главном app.js в run пытаюсь использовать
$rootScope.reLogin();

Пишет - Uncaught TypeError: $rootScope.reLogin is not a function

Если я помещу функцию в
$rootScope.$on('$routeChangeSuccess', function() {});


То всё ок, но каждый раз запускать проверку глупо. Как сделать один раз ? :)
  • Вопрос задан
  • 421 просмотр
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы