Angularjs ui router reject resolve how to avoid loading template -
i've got code
//setting route angular.module('my') .config(['$stateprovider',function($stateprovider) { // check if user logged var checkloggedout = function($http) { /* if user logged server send forbidden status 403*/ homecoming $http.get('/loggedout'); }; // check if user logged var checkloggedin = function($http) { homecoming $http.get('/loggedin'); }; // states app $stateprovider .state('user', { abstract: true, templateurl: 'users/views/index.html', resolve: { loggedin: checkloggedin } }) .state('user_register', { url: '/user/register', templateurl: 'users/views/register.html', resolve: { loggedin: checkloggedout }, controller:'userregisterctrl' }); } ]); if user logged can't go state user_register
but template still loaded.
is wanted behaviour ?
is there way avoid ?
updatemay question can misunderstand
i want know if there way avoid template loading if resolve rejected mean in why on earth template loaded when resolve rejected imo if resolve fails template should not loaded
end with.factory('httpinterceptor', ['$q','$location',function ($q, $location) { homecoming { 'response': function(response) { if (response.status === 401) { $location.path('/signin'); homecoming $q.reject(response); } if (response.status === 403) { $location.path('/'); homecoming $q.reject(response); } homecoming response || $q.when(response); }, 'responseerror': function(rejection) { if (rejection.status === 401) { $location.path('/signin'); homecoming $q.reject(rejection); } if (rejection.status === 403) { $location.path('/'); homecoming $q.reject(rejection); } homecoming $q.reject(rejection); } }; }
first off, making rest phone call check if user logged in every state transition may expensive. may improve store state of user in browser.
second, more question asking: can create event handler hear $statechangestart event. in handler can check if user logged in , whether able access state.
this link should help http://www.frederiknakstad.com/2014/02/09/ui-router-in-angular-client-side-auth/
angularjs angular-ui-router
No comments:
Post a Comment