Route Angular to New Controller after Login
        Posted  
        
            by 
                MizAkita
            
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by MizAkita
        
        
        
        Published on 2014-05-29T19:00:55Z
        Indexed on 
            2014/05/29
            21:27 UTC
        
        
        Read the original article
        Hit count: 309
        
I'm kind of stuck on how to route my angular app to a new controller after login. I have a simple app, that uses 'loginservice'... after logging in, it then routes to /home which has a different template from the index.html(login page).
I want to use /home as the route that displays the partial views of my flightforms controllers. What is the best way to configure my routes so that after login, /home is the default and the routes are called into that particular templates view. Seems easy but I keep getting the /login page when i click on a link which is suppose to pass the partial view into the default.html template:
var app= angular.module('myApp', ['ngRoute']);
app.config(['$routeProvider', function($routeProvider) {
    $routeProvider.when('/login', {
        templateUrl: 'partials/login.html', 
        controller: 'loginCtrl'
    });
    $routeProvider.when('/home', {
        templateUrl: 'partials/default.html', 
        controller: 'defaultCtrl'
    });
}]);
flightforms.config(['$routeProvider', function($routeProvider){
 //sub pages    
    $routeProvider.when('/home', {
        templateUrl: 'partials/default.html', 
        controller: 'defaultCtrl'
    });
    $routeProvider.when('/status', {
        templateUrl: 'partials/subpages/home.html', 
        controller: 'statusCtrl'
    });
    $routeProvider.when('/observer-ao', {
        templateUrl: 'partials/subpages/aobsrv.html', 
        controller: 'obsvaoCtrl'
    });
    $routeProvider.when('/dispatch', {
        templateUrl: 'partials/subpages/disp.html', 
        controller: 'dispatchCtrl'
    });
    $routeProvider.when('/fieldmgr', {
        templateUrl: 'partials/subpages/fieldopmgr.html', 
        controller: 'fieldmgrCtrl'
    });
    $routeProvider.when('/obs-backoffice', {
        templateUrl: 'partials/subpages/obsbkoff.html', 
        controller: 'obsbkoffCtrl'
    });
    $routeProvider.when('/add-user', {
        templateUrl: 'partials/subpages/users.html', 
        controller: 'userCtrl'
    });
    $routeProvider.otherwise({
        redirectTo: '/status'
    });
}]);    
app.run(function($rootScope, $location, loginService) {
    var routespermission=['/home'];  //route that require login
    $rootScope.$on('$routeChangeStart', function(){
        if( routespermission.indexOf($location.path()) !=-1)
        {
            var connected=loginService.islogged();
            connected.then(function(msg) {
                if(!msg.data) $location.path('/login');
            });
        }
    });
});
and my controllers are simple. Here's a sample of what they look like:
var flightformsControllers = angular.module('flightformsController', []);
flightforms.controller('fieldmgrCtrl', ['$scope','$http','loginService',
    function($scope,loginService) {
        $scope.txt='You are logged in';
        $scope.logout=function(){
            loginService.logout();
        }
}]);
Any ideas on how to get my partials to display in the /home default.html template would be appreciated.
© Stack Overflow or respective owner