htmlangularjsangular-routingroute-provider

Disable routing on page refresh in angular js


I have a route provider like this

app.config(function ($routeProvider, $locationProvider){
$locationProvider.hashPrefix('');


$routeProvider
.when('/', {
    templateUrl: 'login.html',
    controller: 'loginCtrl'
})
.when('/home', {
    resolve:{
        "check":function($location, $rootScope){
            if(!$rootScope.loggedIn){
                $location.path('/');
            }
        }
    },
    templateUrl:'home.html',
    controller: 'homeCtrl'
})
.otherwise({
    redirectTo: '/'
   });
});

login.html is the first page of my app.

But after login, on reloading any page that will ends up in the login.html page

I want other pages keep alive on refresh and login.html as my opening page


Solution

  • Reloading page will recreate $rootScope every time. So you need to store login details in any storage like localstorage.

    http://blog.teamtreehouse.com/storing-data-on-the-client-with-localstorage

    This link might help you. you need to store data once you successfully logged in. and get stored data and validate the use while resolving url.