html5 - Route Angular to New Controller after Login -


i'm kind of stuck on how route angular app new controller after login. have simple app, uses 'loginservice'... after logging in, routes /home has different template index.html(login page).

i want use /home route displays partial views of flightforms controllers. best way configure routes after login, /home default , routes called particular templates view. seems easy keep getting /login page when click on link suppose pass partial view 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 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 controllers simple. here's sample of like:

var flightformscontrollers = angular.module('flightformscontroller', []);  flightforms.controller('fieldmgrctrl', ['$scope','$http','loginservice',     function($scope,loginservice) {         $scope.txt='you logged in';         $scope.logout=function(){             loginservice.logout();         } }]); 

any ideas on how partials display in /home default.html template appreciated.

1) move routing main app.config, , remove duplicate route /home.

2) change line

var flightformscontrollers = angular.module('flightformscontroller', []); 

to

var flightforms = angular.module('flightforms', []); 

3) change app definition line inject flightforms module:

var app= angular.module('myapp', ['ngroute', 'flightforms']); 

that should ya close.

for 1 of comments, idea have interecptor catches 401 un-authenticated errors server. way, if user's session expires before route change, still have login again start new session. in app.config should it.

$provide.factory('logouton401', ['$q', '$injector', function ($q, $injector) {   return {     'responseerror': function(response) {       if (response.status === 401) {         $location.path('/login')         return $q.reject();       } else {         return $q.reject(response);       }     }   }; }]);  $httpprovider.interceptors.push('logouton401'); 

Comments

Popular posts from this blog

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

php - render data via PDO::FETCH_FUNC vs loop -

The canvas has been tainted by cross-origin data in chrome only -