javascript - When page is reloaded from anywhere in application its goes to initial page in angularjs? -
- in webapp, routing used.
- initial page having header details , login page included using ng-include because login page separate html page , has ng-view tag.
- login page having hyperlink of register when user click on register login page made explicitly hidden controller , when registeration submitted redirected new page , same login page , has been done angular routing.
- but, whenever after page refreshed or reloaded goes initial page i.e. index.html having login details.
- now, don't wanted such case whenever page refreshed suppose on same page unless , until there not url changes.
index.html
<body ng-app="docpointapp" ng-controller="mainctrl"> <div id="wrap"> <nav role="navigation" class="navbar navbar-inverse navbar-default navbar-static-top"> <div class="container-fluid"> <div class="navbar-header"> <button type="button" data-target="#navbarcollapse" data-toggle="collapse" class="navbar-toggle"> <span class="sr-only">toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> </div> </nav> <div ng-include="'/doc-demo/parts/login.html'"> </div> </div> </body> login.html
<div id="loginuser" ng-controller="appcontroller"> <div class="container-fluid"> <div ng-show="showpage" > <form class="form-horizontal" name="loginform"> <div class="form-group"> <div class=""> <a class="btn btn-default" ng-click="loginuser()">login</a> </div> </div> <!--- login details---> <div class="form-group"> <div class=""> <a href="#/view-register" ng-click="showregister()">register}</a> </div> </div> </form> </div> <div ng-view></div> </div> </div> view-register.html
<div id="registeruser" ng-controller="appcontroller"> <div class="panel-body" > <form class="form-horizontal css-form" name="registerform"> <div class="form-group"> <!-- registration details----> <div class=""> <a class="btn btn-default" ng-click="registeruser()">register</a> </div> </div> </form> </div> </div> some other files
<!--menubar.html,home.html,createrequest.html,pendingrequest.html etc --> docpointapp.js(javascript file)
var docpointapp = angular.module('docpointapp', ['ngroute', 'ngresource']); docpointapp.config(['$routeprovider', function ($routeprovider) { $routeprovider. when('/view-register', { templateurl: '/doc-demo/parts/view-register.html', controller: 'appcontroller' }). when('/view-docmain', { templateurl: '/doc-demo/parts/docmain.html', controller: 'appcontroller' }). when('/login-user', { templateurl: '/doc-demo/parts/login.html', controller: 'appcontroller' }). when('/create_request', { templateurl: '/doc-demo/parts/createrequest.html', controller: 'appcontroller' }). when('/pending_upload_requests', { templateurl: '/doc-demo/parts/pendingrequest.html', controller: 'appcontroller' }). when('/index', { templateurl: '/doc-demo/parts/home.html', controller: 'appcontroller' }). when('/available_request', { templateurl: '/doc-demo/parts/pendingrequest.html', controller: 'appcontroller' }). when('/assigned_request', { templateurl: '/doc-demo/parts/pendingrequest.html', controller: 'appcontroller' }). when('/processed_request', { templateurl: '/doc-demo/parts/pendingrequest.html', controller: 'appcontroller' }). otherwise({redirectto: '/home'}); }]); docpointapp.factory('loginsvc', [function () { var loginproperties = { isloggedin: false }; return loginproperties; }]); docpointapp.controller('appcontroller', ['$scope', '$rootscope', '$http', '$location', 'loginsvc', function ($scope, $rootscope, $http, $location, loginsvc) { $scope.user = { 'id': '', 'username': '', 'password': '', 'firstname': '', 'lastname': '', 'type': '' }; $scope.logout = function () { loginsvc.isloggedin = false; $scope.isloggedin = loginsvc.isloggedin; }; $scope.loginuser = function () { loginsvc.isloggedin = true; $scope.isloggedin = loginsvc.isloggedin; var res = $http({ method: 'post', datatype: 'json', url: '/doc-demo/actions/user-login', data: $scope.user }); res.success(function (data, status, headers, config) { loginsvc.isloggedin = true; $scope.isloggedin = loginsvc.isloggedin; $scope.user = data; if ($scope.user.type === "role_proof_reader") { $scope.showproofreader = true; $scope.showofficer = false; } else { $scope.showofficer = true; $scope.showproofreader = false; } if ($scope.user.loginstatus === "loggedin") { $scope.showpage = false; $location.path("/index"); } }); res.error(function (data, status, headers, config) { alert("failure message: " + json.stringify({data: data})); }); }; $scope.showpage = true; $scope.showregister = function () { $scope.showpage = !$scope.showpage; }; $scope.registeruser = function () { var res = $http({ method: 'post', datatype: 'json', url: '/doc-demo/actions/user-register', data: $scope.user }); res.success(function (data, status, headers, config) { $scope.user = data; if ($scope.user.type === "proofreader") { $rootscope.showproofreader = true; $rootscope.showofficer = false; } else { $rootscope.showofficer = true; $rootscope.showproofreader = false; } $location.path("/index");// page redirection after register sucess }); res.error(function (data, status, headers, config) { alert("failure message: " + json.stringify({data: data})); }); }; $scope.search_pending_request = function () { //some details }; }]);
not sure if still looking answer page refresh can achieved using combination of $cookies , $httpprovider.interceptors.push. can capture routing in cookies , in controller can last routing page info cookie , redirect accordingly using $localtion.
Comments
Post a Comment