ui-роутер на 1.0.22 и $ переходы в угловые 1.7 - PullRequest
0 голосов
/ 08 апреля 2019

Я использую Stateprovider для маршрутизации между различными представлениями и хотел включить вход в систему для определенного представления.Я использую $ transitions.onStart в функции запуска приложения и перенаправляю на страницу входа, когда представление требует входа в систему.Я могу перенаправить на страницу входа и установить флаг аутентификации, но я не знаю, как перенаправить в представление testAuth после успешного входа.Я могу подумать, что могу использовать $ transitions.onSucess и проверить флаг аутентификации для правильной маршрутизации.Я не совсем уверен, что это подходящее решение, а также не очень знаком с $ переходами.Спасибо за вашу помощь.

controller('LoginCtrl',['$scope', '$state', 'Auth', 'ParseService', function($scope, $state, Auth, ParseService) 
{ 
    $scope.credentials = {};
    //$scope.auth = Auth;
    $scope.doLoginAction =  function () {
            ParseService.login($scope.credentials).then(function (_loggedInUser) {
            // successful response from the service, the user is
            // logged in and we have a user object
            alert("User Logged In " + _loggedInUser.username);
            Auth.isLoggedIn = true;
        }, function error(_errorResponse) {
            // if error occurred anywhere above, this code will
            // be executed
            alert("ERROR " + _errorResponse);
            Auth.isLoggedIn = false;
        });
    };

.state('testauth',{
        url : '/testAuth',
        templateUrl: 'pages/testAuth.html',
        data : {requireLogin : true }
    })
    
.state('login',{
        url : '/login',
        templateUrl : 'pages/login.html',
        controller : 'LoginCtrl',
    })
 
 app.run(function ($rootScope, $transitions, $state, $location, Auth) {
    console.log("In Transition");
    console.log("Auth Is Logged In: " + Auth.isLoggedIn);
    $transitions.onStart({
        to: function (state) {
            return state.data !== undefined && state.data.requireLogin && !Auth.isLoggedIn;
        }
    }, function () {
        if (!Auth.isLoggedIn) {
            return $state.target("login");
        }
    });
    
});
   
   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...