2016-01-13 1 views
0

Je peux enregistrer les données dans succčs le stockage local et l'accès à mon tableau comme celui-ci:Comment puis-je définir des itinéraires pour l'utilisateur connecté?

 var user = JSON.parse(window.localStorage['user'] || '{}'); 
     console.log(user); 

user.loken contiennent mon jeton, donc si le jeton d'utilisateur existe et est dans le stockage local, cela signifie que le l'utilisateur est connecté.

Ma question sont:

Si l'utilisateur est connecté, il ne fait pas besoin d'avoir accès à la page de connexion. Si l'utilisateur est connecté, il doit être redirigé vers l'onglet /. Je ne sais pas comment faire la condition, j'ai lu que je dois faire une usine et définir une variable hcih dire que si le jeton existe, définissez la variable comme vrai et alors vous pouvez l'utiliser partout. Est-ce correct ?

.config(function($stateProvider, $urlRouterProvider) { 

    // Ionic uses AngularUI Router which uses the concept of states 
    // Learn more here: https://github.com/angular-ui/ui-router 
    // Set up the various states which the app can be in. 
    // Each state's controller can be found in controllers.js 
    $stateProvider 

    // setup an abstract state for the tabs directive 
    .state('tab', { 
    url: '/tab', 
    abstract: true, 
    templateUrl: 'templates/tabs.html', 
    }) 

    // Each tab has its own nav history stack: 

    .state('tab.dash', { 
    url: '/dash', 
    views: { 
     'tab-dash': { 
     templateUrl: 'templates/tab-dash.html', 
     controller: 'DashCtrl' 
     } 
    } 
    }) 
    .state('login', { 
     url: '/login', 
     templateUrl: 'templates/login.html', 
     controller: 'LoginCtrl' 
    }); 

    // if none of the above states are matched, use this as the fallback 
    $urlRouterProvider.otherwise('/login'); 

}); 

Répondre

1

Vous pouvez utiliser stateChangeStart $:

$rootScope.$on("$stateChangeStart", function (event, toState, toParams, fromState, fromParams) { 

if (!window.localStorage['user'].token) {   
     event.preventDefault(); 
     $state.go("login"); 
     return; 
} 
}