Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
var checkRouting= function ($q, $rootScope, $location) {
return !!$rootScope.userProfile || $http.post("/loadUserProfile", { userToken: "blah" })
.success(function (response) {
$rootScope.userProfile = response.userProfile;
})
.error(function () {
$location.path("/");
});
};
var checkRouting= function ($q, $rootScope, $location) {
return !!$rootScope.userProfile
|| $http.post("/loadUserProfile", { userToken: "blah" })
.error(function () {
$location.path('/');
})
.then(function (response) {
$rootScope.userProfile = response.data.userProfile;
// тут могла быть ваша пост-обработка данных
// если тут нужно зареджектить, то можно вернуть $q.reject()
return true;
});
};
$scope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams){
if(toState.name==='...' && notAuthorized){
event.preventDefault();
}
})
var process = false;
var auth = function(stateName){
$http.get('...').success(
function(data){
process=true;
$state.go(stateName);
});
};
$scope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams){
if(process){
process=false;
}else{
auth(toState.name);
event.preventDefault();
}
})
Вариант условного роутинга в AngularJS